GuiReBar.au3 67 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312
  1. #include-once
  2. #include "Memory.au3"
  3. #include "RebarConstants.au3"
  4. #include "SendMessage.au3"
  5. #include "StructureConstants.au3"
  6. #include "UDFGlobalID.au3"
  7. #include "WinAPIConstants.au3"
  8. #include "WinAPIConv.au3"
  9. #include "WinAPISysInternals.au3"
  10. ; #INDEX# =======================================================================================================================
  11. ; Title .........: Rebar
  12. ; AutoIt Version : 3.3.14.5
  13. ; Language ......: English
  14. ; Description ...: Functions that assist with Rebar control management.
  15. ; Rebar controls act as containers for child windows. An application assigns child windows,
  16. ; which are often other controls, to a rebar control band. Rebar controls contain one or more bands,
  17. ; and each band can have any combination of a gripper bar, a bitmap, a text label, and a child window.
  18. ; However, bands cannot contain more than one child window.
  19. ; Author(s) .....: Gary Frost
  20. ; ===============================================================================================================================
  21. ; #VARIABLES# ===================================================================================================================
  22. Global $__g_hRBLastWnd
  23. ; ===============================================================================================================================
  24. ; #CONSTANTS# ===================================================================================================================
  25. Global Const $__REBARCONSTANT_ClassName = "ReBarWindow32"
  26. Global Const $__REBARCONSTANT_TB_GETBUTTONSIZE = $__REBARCONSTANT_WM_USER + 58
  27. Global Const $__REBARCONSTANT_TB_BUTTONCOUNT = $__REBARCONSTANT_WM_USER + 24
  28. Global Const $__REBARCONSTANT_WS_CLIPCHILDREN = 0x02000000
  29. Global Const $__REBARCONSTANT_WS_CLIPSIBLINGS = 0x04000000
  30. Global Const $__REBARCONSTANT_CCS_TOP = 0x01
  31. ; ===============================================================================================================================
  32. ; #NO_DOC_FUNCTION# =============================================================================================================
  33. ; Not working/documented/implemented at this time
  34. ;
  35. ; _GUICtrlRebar_GetBandStyleNoVert
  36. ; _GUICtrlRebar_SetBandStyleNoVert
  37. ; ===============================================================================================================================
  38. ; #CURRENT# =====================================================================================================================
  39. ; _GUICtrlRebar_AddBand
  40. ; _GUICtrlRebar_AddToolBarBand
  41. ; _GUICtrlRebar_BeginDrag
  42. ; _GUICtrlRebar_Create
  43. ; _GUICtrlRebar_DeleteBand
  44. ; _GUICtrlRebar_Destroy
  45. ; _GUICtrlRebar_DragMove
  46. ; _GUICtrlRebar_EndDrag
  47. ; _GUICtrlRebar_GetBandBackColor
  48. ; _GUICtrlRebar_GetBandBorders
  49. ; _GUICtrlRebar_GetBandBordersEx
  50. ; _GUICtrlRebar_GetBandChildHandle
  51. ; _GUICtrlRebar_GetBandChildSize
  52. ; _GUICtrlRebar_GetBandCount
  53. ; _GUICtrlRebar_GetBandForeColor
  54. ; _GUICtrlRebar_GetBandHeaderSize
  55. ; _GUICtrlRebar_GetBandID
  56. ; _GUICtrlRebar_GetBandIdealSize
  57. ; _GUICtrlRebar_GetBandLParam
  58. ; _GUICtrlRebar_GetBandLength
  59. ; _GUICtrlRebar_GetBandMargins
  60. ; _GUICtrlRebar_GetBandMarginsEx
  61. ; _GUICtrlRebar_GetBandStyle
  62. ; _GUICtrlRebar_GetBandStyleBreak
  63. ; _GUICtrlRebar_GetBandStyleChildEdge
  64. ; _GUICtrlRebar_GetBandStyleFixedBMP
  65. ; _GUICtrlRebar_GetBandStyleFixedSize
  66. ; _GUICtrlRebar_GetBandStyleGripperAlways
  67. ; _GUICtrlRebar_GetBandStyleHidden
  68. ; _GUICtrlRebar_GetBandStyleHideTitle
  69. ; _GUICtrlRebar_GetBandStyleNoGripper
  70. ; _GUICtrlRebar_GetBandStyleTopAlign
  71. ; _GUICtrlRebar_GetBandStyleUseChevron
  72. ; _GUICtrlRebar_GetBandStyleVariableHeight
  73. ; _GUICtrlRebar_GetBandRect
  74. ; _GUICtrlRebar_GetBandRectEx
  75. ; _GUICtrlRebar_GetBandText
  76. ; _GUICtrlRebar_GetBarHeight
  77. ; _GUICtrlRebar_GetBarInfo
  78. ; _GUICtrlRebar_GetBKColor
  79. ; _GUICtrlRebar_GetColorScheme
  80. ; _GUICtrlRebar_GetRowCount
  81. ; _GUICtrlRebar_GetRowHeight
  82. ; _GUICtrlRebar_GetTextColor
  83. ; _GUICtrlRebar_GetToolTips
  84. ; _GUICtrlRebar_GetUnicodeFormat
  85. ; _GUICtrlRebar_HitTest
  86. ; _GUICtrlRebar_IDToIndex
  87. ; _GUICtrlRebar_MaximizeBand
  88. ; _GUICtrlRebar_MinimizeBand
  89. ; _GUICtrlRebar_MoveBand
  90. ; _GUICtrlRebar_SetBandBackColor
  91. ; _GUICtrlRebar_SetBandForeColor
  92. ; _GUICtrlRebar_SetBandHeaderSize
  93. ; _GUICtrlRebar_SetBandID
  94. ; _GUICtrlRebar_SetBandIdealSize
  95. ; _GUICtrlRebar_SetBandLength
  96. ; _GUICtrlRebar_SetBandLParam
  97. ; _GUICtrlRebar_SetBandStyle
  98. ; _GUICtrlRebar_SetBandStyleBreak
  99. ; _GUICtrlRebar_SetBandStyleChildEdge
  100. ; _GUICtrlRebar_SetBandStyleFixedBMP
  101. ; _GUICtrlRebar_SetBandStyleFixedSize
  102. ; _GUICtrlRebar_SetBandStyleGripperAlways
  103. ; _GUICtrlRebar_SetBandStyleHidden
  104. ; _GUICtrlRebar_SetBandStyleHideTitle
  105. ; _GUICtrlRebar_SetBandStyleNoGripper
  106. ; _GUICtrlRebar_SetBandStyleTopAlign
  107. ; _GUICtrlRebar_SetBandStyleUseChevron
  108. ; _GUICtrlRebar_SetBandStyleVariableHeight
  109. ; _GUICtrlRebar_SetBandText
  110. ; _GUICtrlRebar_SetBKColor
  111. ; _GUICtrlRebar_SetBarInfo
  112. ; _GUICtrlRebar_SetColorScheme
  113. ; _GUICtrlRebar_SetTextColor
  114. ; _GUICtrlRebar_SetToolTips
  115. ; _GUICtrlRebar_SetUnicodeFormat
  116. ; _GUICtrlRebar_ShowBand
  117. ; ===============================================================================================================================
  118. ; #INTERNAL_USE_ONLY# ===========================================================================================================
  119. ; $tagREBARINFO
  120. ; $tagRBHITTESTINFO
  121. ; __GUICtrlRebar_GetBandInfo
  122. ; __GUICtrlRebar_GetColorSchemeEx
  123. ; __GUICtrlRebar_SetBandInfo
  124. ; ===============================================================================================================================
  125. ; #INTERNAL_USE_ONLY# ===========================================================================================================
  126. ; Name...........: $tagREBARINFO
  127. ; Description ...: Contains information that describes rebar control characteristics
  128. ; Fields ........: cbSize - Size of this structure, in bytes. Your application must fill this member before sending any messages that use the address of this structure as a parameter.
  129. ; fMask - Flag values that describe characteristics of the rebar control. Currently, rebar controls support only one value:
  130. ; |$RBIM_IMAGELIST - The himl member is valid or must be filled
  131. ; himl - Handle to an image list. The rebar control will use the specified image list to obtain images
  132. ; Author ........: Gary Frost
  133. ; Remarks .......:
  134. ; ===============================================================================================================================
  135. Global Const $tagREBARINFO = "uint cbSize;uint fMask;handle himl"
  136. ; #INTERNAL_USE_ONLY# ===========================================================================================================
  137. ; Name...........: $tagRBHITTESTINFO
  138. ; Description ...: Contains information specific to a hit test operation
  139. ; Fields ........: X - Specifies the x-coordinate of the point
  140. ; Y - Specifies the y-coordinate of the point
  141. ; flags - Member that receives a flag value indicating the rebar band's component located at the point described by pt
  142. ; |This member will be one of the following:
  143. ; -
  144. ; |$RBHT_CAPTION - The point was in the rebar band's caption
  145. ; |$RBHT_CHEVRON - The point was in the rebar band's chevron (version 5.80 and greater)
  146. ; |$RBHT_CLIENT - The point was in the rebar band's client area
  147. ; |$RBHT_GRABBER - The point was in the rebar band's gripper
  148. ; |$RBHT_NOWHERE - The point was not in a rebar band
  149. ; iBand - Member that receives the rebar band's index at the point described by pt
  150. ; |This value will be the zero-based index of the band, or -1 if no band was at the hit-tested point
  151. ; Author ........: Gary Frost
  152. ; Remarks .......:
  153. ; ===============================================================================================================================
  154. Global Const $tagRBHITTESTINFO = $tagPOINT & ";uint flags;int iBand"
  155. ; #FUNCTION# ====================================================================================================================
  156. ; Author ........: Gary Frost
  157. ; Modified.......:
  158. ; ===============================================================================================================================
  159. Func _GUICtrlRebar_AddBand($hWndRebar, $hWndChild, $iMinWidth = 100, $iDefaultWidth = 100, $sText = "", $iIndex = -1, $iStyle = -1)
  160. Local $bUnicode = _GUICtrlRebar_GetUnicodeFormat($hWndRebar)
  161. If Not IsHWnd($hWndChild) Then $hWndChild = GUICtrlGetHandle($hWndChild)
  162. Local $tINFO = DllStructCreate($tagREBARBANDINFO)
  163. Local $iSize = DllStructGetSize($tINFO)
  164. If $iDefaultWidth < $iMinWidth Then $iDefaultWidth = $iMinWidth
  165. If $iStyle <> -1 Then
  166. $iStyle = BitOR($iStyle, $RBBS_CHILDEDGE, $RBBS_GRIPPERALWAYS)
  167. Else
  168. $iStyle = BitOR($RBBS_CHILDEDGE, $RBBS_GRIPPERALWAYS)
  169. EndIf
  170. ;// Initialize band info used by the control
  171. DllStructSetData($tINFO, "cbSize", $iSize)
  172. DllStructSetData($tINFO, "fMask", BitOR($RBBIM_STYLE, $RBBIM_TEXT, $RBBIM_CHILD, $RBBIM_CHILDSIZE, $RBBIM_SIZE, $RBBIM_ID))
  173. DllStructSetData($tINFO, "fStyle", $iStyle)
  174. ;// Set values unique to the band with the control
  175. Local $tRECT = _WinAPI_GetWindowRect($hWndChild)
  176. Local $iBottom = DllStructGetData($tRECT, "Bottom")
  177. Local $iTop = DllStructGetData($tRECT, "Top")
  178. Local $iBuffer = StringLen($sText) + 1
  179. Local $tBuffer
  180. If $bUnicode Then
  181. $tBuffer = DllStructCreate("wchar Text[" & $iBuffer & "]")
  182. $iBuffer *= 2
  183. Else
  184. $tBuffer = DllStructCreate("char Text[" & $iBuffer & "]")
  185. EndIf
  186. DllStructSetData($tBuffer, "Text", $sText)
  187. DllStructSetData($tINFO, "hwndChild", $hWndChild)
  188. DllStructSetData($tINFO, "cxMinChild", $iMinWidth)
  189. DllStructSetData($tINFO, "cyMinChild", $iBottom - $iTop)
  190. ;// The default width should be set to some value wider than the text. The combo
  191. ;// box itself will expand to fill the band.
  192. DllStructSetData($tINFO, "cx", $iDefaultWidth)
  193. DllStructSetData($tINFO, "wID", _GUICtrlRebar_GetBandCount($hWndRebar))
  194. Local $tMemMap
  195. Local $pMemory = _MemInit($hWndRebar, $iSize + $iBuffer, $tMemMap)
  196. Local $pText = $pMemory + $iSize
  197. DllStructSetData($tINFO, "lpText", $pText)
  198. _MemWrite($tMemMap, $tINFO, $pMemory, $iSize)
  199. _MemWrite($tMemMap, $tBuffer, $pText, $iBuffer)
  200. ;// Add the band that has the combobox
  201. Local $iRet
  202. If $bUnicode Then
  203. $iRet = _SendMessage($hWndRebar, $RB_INSERTBANDW, $iIndex, $pMemory, 0, "wparam", "ptr") <> 0
  204. Else
  205. $iRet = _SendMessage($hWndRebar, $RB_INSERTBANDA, $iIndex, $pMemory, 0, "wparam", "ptr") <> 0
  206. EndIf
  207. _MemFree($tMemMap)
  208. Return $iRet
  209. EndFunc ;==>_GUICtrlRebar_AddBand
  210. ; #FUNCTION# ====================================================================================================================
  211. ; Author ........: Gary Frost
  212. ; Modified.......:
  213. ; ===============================================================================================================================
  214. Func _GUICtrlRebar_AddToolBarBand($hWndRebar, $hWndToolbar, $sText = "", $iIndex = -1, $iStyle = -1)
  215. Local $bUnicode = _GUICtrlRebar_GetUnicodeFormat($hWndRebar)
  216. Local $tINFO = DllStructCreate($tagREBARBANDINFO)
  217. Local $iSize = DllStructGetSize($tINFO)
  218. If $iStyle <> -1 Then
  219. $iStyle = BitOR($iStyle, $RBBS_CHILDEDGE, $RBBS_GRIPPERALWAYS)
  220. Else
  221. $iStyle = BitOR($RBBS_CHILDEDGE, $RBBS_GRIPPERALWAYS)
  222. EndIf
  223. ;// Initialize band info used by the toolbar
  224. DllStructSetData($tINFO, "cbSize", $iSize)
  225. DllStructSetData($tINFO, "fMask", BitOR($RBBIM_STYLE, $RBBIM_TEXT, $RBBIM_CHILD, $RBBIM_CHILDSIZE, $RBBIM_SIZE, $RBBIM_ID))
  226. DllStructSetData($tINFO, "fStyle", $iStyle)
  227. ;// Get the height of the toolbar.
  228. Local $iBtnSize = _SendMessage($hWndToolbar, $__REBARCONSTANT_TB_GETBUTTONSIZE)
  229. ; Get the number of buttons contained in toolbar for calculation
  230. Local $iNumButtons = _SendMessage($hWndToolbar, $__REBARCONSTANT_TB_BUTTONCOUNT)
  231. Local $iDefaultWidth = $iNumButtons * _WinAPI_LoWord($iBtnSize)
  232. ;// Set values unique to the band with the toolbar.
  233. Local $iBuffer = StringLen($sText) + 1
  234. Local $tBuffer
  235. If $bUnicode Then
  236. $tBuffer = DllStructCreate("wchar Text[" & $iBuffer & "]")
  237. $iBuffer *= 2
  238. Else
  239. $tBuffer = DllStructCreate("char Text[" & $iBuffer & "]")
  240. EndIf
  241. DllStructSetData($tBuffer, "Text", $sText)
  242. DllStructSetData($tINFO, "hwndChild", $hWndToolbar)
  243. DllStructSetData($tINFO, "cyChild", _WinAPI_HiWord($iBtnSize))
  244. DllStructSetData($tINFO, "cxMinChild", $iDefaultWidth)
  245. DllStructSetData($tINFO, "cyMinChild", _WinAPI_HiWord($iBtnSize))
  246. DllStructSetData($tINFO, "cx", $iDefaultWidth) ;// The default width is the width of the buttons.
  247. DllStructSetData($tINFO, "wID", _GUICtrlRebar_GetBandCount($hWndRebar))
  248. ;// Add the band that has the toolbar.
  249. Local $tMemMap, $iRet
  250. Local $pMemory = _MemInit($hWndRebar, $iSize + $iBuffer, $tMemMap)
  251. Local $pText = $pMemory + $iSize
  252. DllStructSetData($tINFO, "lpText", $pText)
  253. _MemWrite($tMemMap, $tINFO, $pMemory, $iSize)
  254. _MemWrite($tMemMap, $tBuffer, $pText, $iBuffer)
  255. ;// Add the band that has the combobox
  256. If $bUnicode Then
  257. $iRet = _SendMessage($hWndRebar, $RB_INSERTBANDW, $iIndex, $pMemory, 0, "wparam", "ptr") <> 0
  258. Else
  259. $iRet = _SendMessage($hWndRebar, $RB_INSERTBANDA, $iIndex, $pMemory, 0, "wparam", "ptr") <> 0
  260. EndIf
  261. _MemFree($tMemMap)
  262. Return $iRet
  263. EndFunc ;==>_GUICtrlRebar_AddToolBarBand
  264. ; #FUNCTION# ====================================================================================================================
  265. ; Author ........: Gary Frost
  266. ; Modified.......:
  267. ; ===============================================================================================================================
  268. Func _GUICtrlRebar_BeginDrag($hWnd, $iIndex, $iPos = -1)
  269. _SendMessage($hWnd, $RB_BEGINDRAG, $iIndex, $iPos, 0, "wparam", "dword")
  270. EndFunc ;==>_GUICtrlRebar_BeginDrag
  271. ; #FUNCTION# ====================================================================================================================
  272. ; Author ........: Gary Frost
  273. ; Modified.......:
  274. ; ===============================================================================================================================
  275. Func _GUICtrlRebar_Create($hWnd, $iStyles = 0x513)
  276. Local Const $ICC_BAR_CLASSES = 0x00000004; toolbar
  277. Local Const $ICC_COOL_CLASSES = 0x00000400; rebar
  278. Local $iStyle = BitOR($__UDFGUICONSTANT_WS_CHILD, $__UDFGUICONSTANT_WS_VISIBLE, $__REBARCONSTANT_WS_CLIPCHILDREN, $__REBARCONSTANT_WS_CLIPSIBLINGS)
  279. If $iStyles <> BitOR($__REBARCONSTANT_CCS_TOP, $RBS_VARHEIGHT) Then
  280. $iStyle = BitOR($iStyle, $iStyles)
  281. Else
  282. $iStyle = BitOR($iStyle, $__REBARCONSTANT_CCS_TOP, $RBS_VARHEIGHT)
  283. EndIf
  284. Local $tICCE = DllStructCreate('dword;dword')
  285. DllStructSetData($tICCE, 1, DllStructGetSize($tICCE))
  286. DllStructSetData($tICCE, 2, BitOR($ICC_BAR_CLASSES, $ICC_COOL_CLASSES))
  287. Local $aResult = DllCall('comctl32.dll', 'int', 'InitCommonControlsEx', 'struct*', $tICCE)
  288. If @error Then Return SetError(@error, @extended, 0)
  289. If $aResult[0] = 0 Then Return SetError(-2, 0, 0)
  290. Local $nCtrlID = __UDF_GetNextGlobalID($hWnd)
  291. If @error Then Return SetError(@error, @extended, 0)
  292. Local $hReBar = _WinAPI_CreateWindowEx(0, $__REBARCONSTANT_ClassName, "", $iStyle, 0, 0, 0, 0, $hWnd, $nCtrlID)
  293. If @error Then Return SetError(-1, -1, 0)
  294. Return $hReBar
  295. EndFunc ;==>_GUICtrlRebar_Create
  296. ; #FUNCTION# ====================================================================================================================
  297. ; Author ........: Gary Frost
  298. ; Modified.......:
  299. ; ===============================================================================================================================
  300. Func _GUICtrlRebar_DeleteBand($hWnd, $iIndex)
  301. Return _SendMessage($hWnd, $RB_DELETEBAND, $iIndex) <> 0
  302. EndFunc ;==>_GUICtrlRebar_DeleteBand
  303. ; #FUNCTION# ====================================================================================================================
  304. ; Author ........: Gary Frost (gafrost)
  305. ; Modified.......:
  306. ; ===============================================================================================================================
  307. Func _GUICtrlRebar_Destroy(ByRef $hWnd)
  308. If Not _WinAPI_IsClassName($hWnd, $__REBARCONSTANT_ClassName) Then Return SetError(2, 2, False)
  309. Local $iDestroyed = 0
  310. If _WinAPI_InProcess($hWnd, $__g_hRBLastWnd) Then
  311. Local $iRebarCount = _GUICtrlRebar_GetBandCount($hWnd)
  312. For $iIndex = $iRebarCount - 1 To 0 Step -1
  313. _GUICtrlRebar_DeleteBand($hWnd, $iIndex)
  314. Next
  315. Local $nCtrlID = _WinAPI_GetDlgCtrlID($hWnd)
  316. Local $hParent = _WinAPI_GetParent($hWnd)
  317. $iDestroyed = _WinAPI_DestroyWindow($hWnd)
  318. Local $iRet = __UDF_FreeGlobalID($hParent, $nCtrlID)
  319. If Not $iRet Then
  320. ; can check for errors here if needed, for debug
  321. EndIf
  322. Else
  323. ; Not Allowed to Destroy Other Applications Control(s)
  324. Return SetError(1, 1, False)
  325. EndIf
  326. If $iDestroyed Then $hWnd = 0
  327. Return $iDestroyed <> 0
  328. EndFunc ;==>_GUICtrlRebar_Destroy
  329. ; #FUNCTION# ====================================================================================================================
  330. ; Author ........: Gary Frost
  331. ; Modified.......:
  332. ; ===============================================================================================================================
  333. Func _GUICtrlRebar_DragMove($hWnd, $iPos = -1)
  334. _SendMessage($hWnd, $RB_DRAGMOVE, 0, $iPos, 0, "wparam", "dword")
  335. EndFunc ;==>_GUICtrlRebar_DragMove
  336. ; #FUNCTION# ====================================================================================================================
  337. ; Author ........: Gary Frost
  338. ; Modified.......:
  339. ; ===============================================================================================================================
  340. Func _GUICtrlRebar_EndDrag($hWnd)
  341. _SendMessage($hWnd, $RB_ENDDRAG)
  342. EndFunc ;==>_GUICtrlRebar_EndDrag
  343. ; #FUNCTION# ====================================================================================================================
  344. ; Author ........: Gary Frost
  345. ; Modified.......:
  346. ; ===============================================================================================================================
  347. Func _GUICtrlRebar_GetBandBackColor($hWnd, $iIndex)
  348. Local $tINFO = __GUICtrlRebar_GetBandInfo($hWnd, $iIndex, $RBBIM_COLORS)
  349. If @error Then Return SetError(@error, @error, 0)
  350. Return DllStructGetData($tINFO, "clrBack")
  351. EndFunc ;==>_GUICtrlRebar_GetBandBackColor
  352. ; #FUNCTION# ====================================================================================================================
  353. ; Author ........: Gary Frost
  354. ; Modified.......:
  355. ; ===============================================================================================================================
  356. Func _GUICtrlRebar_GetBandBorders($hWnd, $iIndex)
  357. Local $tRECT = _GUICtrlRebar_GetBandBordersEx($hWnd, $iIndex)
  358. Local $aRect[4]
  359. $aRect[0] = DllStructGetData($tRECT, "Left")
  360. $aRect[1] = DllStructGetData($tRECT, "Top")
  361. $aRect[2] = DllStructGetData($tRECT, "Right")
  362. $aRect[3] = DllStructGetData($tRECT, "Bottom")
  363. Return $aRect
  364. EndFunc ;==>_GUICtrlRebar_GetBandBorders
  365. ; #FUNCTION# ====================================================================================================================
  366. ; Author ........: Gary Frost
  367. ; Modified.......:
  368. ; ===============================================================================================================================
  369. Func _GUICtrlRebar_GetBandBordersEx($hWnd, $iIndex)
  370. Local $tRECT = DllStructCreate($tagRECT)
  371. _SendMessage($hWnd, $RB_GETBANDBORDERS, $iIndex, $tRECT, 0, "uint", "struct*")
  372. Return $tRECT
  373. EndFunc ;==>_GUICtrlRebar_GetBandBordersEx
  374. ; #FUNCTION# ====================================================================================================================
  375. ; Author ........: Gary Frost
  376. ; Modified.......:
  377. ; ===============================================================================================================================
  378. Func _GUICtrlRebar_GetBandChildHandle($hWnd, $iIndex)
  379. Local $tINFO = __GUICtrlRebar_GetBandInfo($hWnd, $iIndex, $RBBIM_CHILD)
  380. If @error Then Return SetError(@error, @error, 0)
  381. Return DllStructGetData($tINFO, "hwndChild")
  382. EndFunc ;==>_GUICtrlRebar_GetBandChildHandle
  383. ; #FUNCTION# ====================================================================================================================
  384. ; Author ........: Gary Frost
  385. ; Modified.......:
  386. ; ===============================================================================================================================
  387. Func _GUICtrlRebar_GetBandChildSize($hWnd, $iIndex)
  388. Local $aSizes[5]
  389. Local $tINFO = __GUICtrlRebar_GetBandInfo($hWnd, $iIndex, $RBBIM_CHILDSIZE)
  390. If @error Then Return SetError(@error, @error, $aSizes)
  391. $aSizes[0] = DllStructGetData($tINFO, "cxMinChild")
  392. $aSizes[1] = DllStructGetData($tINFO, "cyMinChild")
  393. $aSizes[2] = DllStructGetData($tINFO, "cyChild")
  394. $aSizes[3] = DllStructGetData($tINFO, "cyMaxChild")
  395. $aSizes[4] = DllStructGetData($tINFO, "cyIntegral")
  396. Return $aSizes
  397. EndFunc ;==>_GUICtrlRebar_GetBandChildSize
  398. ; #FUNCTION# ====================================================================================================================
  399. ; Author ........: Gary Frost
  400. ; Modified.......:
  401. ; ===============================================================================================================================
  402. Func _GUICtrlRebar_GetBandCount($hWnd)
  403. Return _SendMessage($hWnd, $RB_GETBANDCOUNT)
  404. EndFunc ;==>_GUICtrlRebar_GetBandCount
  405. ; #FUNCTION# ====================================================================================================================
  406. ; Author ........: Gary Frost
  407. ; Modified.......:
  408. ; ===============================================================================================================================
  409. Func _GUICtrlRebar_GetBandForeColor($hWnd, $iIndex)
  410. Local $tINFO = __GUICtrlRebar_GetBandInfo($hWnd, $iIndex, $RBBIM_COLORS)
  411. If @error Then Return SetError(@error, @error, 0)
  412. Return DllStructGetData($tINFO, "clrFore")
  413. EndFunc ;==>_GUICtrlRebar_GetBandForeColor
  414. ; #FUNCTION# ====================================================================================================================
  415. ; Author ........: Gary Frost
  416. ; Modified.......:
  417. ; ===============================================================================================================================
  418. Func _GUICtrlRebar_GetBandHeaderSize($hWnd, $iIndex)
  419. Local $tINFO = __GUICtrlRebar_GetBandInfo($hWnd, $iIndex, $RBBIM_HEADERSIZE)
  420. If @error Then Return SetError(@error, @error, 0)
  421. Return DllStructGetData($tINFO, "cxHeader")
  422. EndFunc ;==>_GUICtrlRebar_GetBandHeaderSize
  423. ; #FUNCTION# ====================================================================================================================
  424. ; Author ........: Gary Frost
  425. ; Modified.......:
  426. ; ===============================================================================================================================
  427. Func _GUICtrlRebar_GetBandID($hWnd, $iIndex)
  428. Local $tINFO = __GUICtrlRebar_GetBandInfo($hWnd, $iIndex, $RBBIM_ID)
  429. If @error Then Return SetError(@error, @error, 0)
  430. Return DllStructGetData($tINFO, "wID")
  431. EndFunc ;==>_GUICtrlRebar_GetBandID
  432. ; #FUNCTION# ====================================================================================================================
  433. ; Author ........: Gary Frost
  434. ; Modified.......:
  435. ; ===============================================================================================================================
  436. Func _GUICtrlRebar_GetBandIdealSize($hWnd, $iIndex)
  437. Local $tINFO = __GUICtrlRebar_GetBandInfo($hWnd, $iIndex, $RBBIM_IDEALSIZE)
  438. If @error Then Return SetError(@error, @error, 0)
  439. Return DllStructGetData($tINFO, "cxIdeal")
  440. EndFunc ;==>_GUICtrlRebar_GetBandIdealSize
  441. ; #INTERNAL_USE_ONLY# ===========================================================================================================
  442. ; Name...........: __GUICtrlRebar_GetBandInfo
  443. ; Description ...: Get Ideal width of the band, in pixels.
  444. ; Syntax.........: __GUICtrlRebar_GetBandInfo ( $hWnd, $iIndex, $iMask )
  445. ; Parameters ....: $hWnd - Handle to rebar control
  446. ; $iIndex - Zero-based index of the band
  447. ; $iMask - Flags that indicate which members of this structure are valid
  448. ; Return values .: Success - $tagREBARBANDINFO structure
  449. ; Author ........: Gary Frost
  450. ; Modified.......:
  451. ; Remarks .......:
  452. ; Related .......:
  453. ; Link ..........:
  454. ; Example .......: Yes
  455. ; ===============================================================================================================================
  456. Func __GUICtrlRebar_GetBandInfo($hWnd, $iIndex, $iMask)
  457. Local $tINFO = DllStructCreate($tagREBARBANDINFO)
  458. Local $iSize = DllStructGetSize($tINFO)
  459. DllStructSetData($tINFO, "cbSize", $iSize)
  460. DllStructSetData($tINFO, "fMask", $iMask)
  461. Local $iRet = _SendMessage($hWnd, $RB_GETBANDINFOW, $iIndex, $tINFO, 0, "wparam", "struct*")
  462. Return SetError($iRet = 0, 0, $tINFO)
  463. EndFunc ;==>__GUICtrlRebar_GetBandInfo
  464. ; #FUNCTION# ====================================================================================================================
  465. ; Author ........: Gary Frost
  466. ; Modified.......:
  467. ; ===============================================================================================================================
  468. Func _GUICtrlRebar_GetBandLParam($hWnd, $iIndex)
  469. Local $tINFO = __GUICtrlRebar_GetBandInfo($hWnd, $iIndex, $RBBIM_LPARAM)
  470. If @error Then Return SetError(@error, @error, 0)
  471. Return DllStructGetData($tINFO, "lParam")
  472. EndFunc ;==>_GUICtrlRebar_GetBandLParam
  473. ; #FUNCTION# ====================================================================================================================
  474. ; Author ........: Gary Frost
  475. ; Modified.......:
  476. ; ===============================================================================================================================
  477. Func _GUICtrlRebar_GetBandLength($hWnd, $iIndex)
  478. Local $tINFO = __GUICtrlRebar_GetBandInfo($hWnd, $iIndex, $RBBIM_SIZE)
  479. If @error Then Return SetError(@error, @error, 0)
  480. Return DllStructGetData($tINFO, "cx")
  481. EndFunc ;==>_GUICtrlRebar_GetBandLength
  482. ; #FUNCTION# ====================================================================================================================
  483. ; Author ........: Gary Frost
  484. ; Modified.......:
  485. ; ===============================================================================================================================
  486. Func _GUICtrlRebar_GetBandMargins($hWnd)
  487. Local $tMargins = _GUICtrlRebar_GetBandMarginsEx($hWnd)
  488. Local $aMargins[4]
  489. $aMargins[0] = DllStructGetData($tMargins, "cxLeftWidth")
  490. $aMargins[1] = DllStructGetData($tMargins, "cxRightWidth")
  491. $aMargins[2] = DllStructGetData($tMargins, "cyTopHeight")
  492. $aMargins[3] = DllStructGetData($tMargins, "cyBottomHeight")
  493. Return $aMargins
  494. EndFunc ;==>_GUICtrlRebar_GetBandMargins
  495. ; #FUNCTION# ====================================================================================================================
  496. ; Author ........: Gary Frost
  497. ; Modified.......:
  498. ; ===============================================================================================================================
  499. Func _GUICtrlRebar_GetBandMarginsEx($hWnd)
  500. Local $tMargins = DllStructCreate($tagMARGINS)
  501. _SendMessage($hWnd, $RB_GETBANDMARGINS, 0, $tMargins, 0, "wparam", "struct*")
  502. Return $tMargins
  503. EndFunc ;==>_GUICtrlRebar_GetBandMarginsEx
  504. ; #FUNCTION# ====================================================================================================================
  505. ; Author ........: Gary Frost
  506. ; Modified.......:
  507. ; ===============================================================================================================================
  508. Func _GUICtrlRebar_GetBandStyle($hWnd, $iIndex)
  509. Local $tINFO = __GUICtrlRebar_GetBandInfo($hWnd, $iIndex, $RBBIM_STYLE)
  510. If @error Then Return SetError(@error, @error, 0)
  511. Return DllStructGetData($tINFO, "fStyle")
  512. EndFunc ;==>_GUICtrlRebar_GetBandStyle
  513. ; #FUNCTION# ====================================================================================================================
  514. ; Author ........: Gary Frost
  515. ; Modified.......:
  516. ; ===============================================================================================================================
  517. Func _GUICtrlRebar_GetBandStyleBreak($hWnd, $iIndex)
  518. Return BitAND(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_BREAK) = $RBBS_BREAK
  519. EndFunc ;==>_GUICtrlRebar_GetBandStyleBreak
  520. ; #FUNCTION# ====================================================================================================================
  521. ; Author ........: Gary Frost
  522. ; Modified.......:
  523. ; ===============================================================================================================================
  524. Func _GUICtrlRebar_GetBandStyleChildEdge($hWnd, $iIndex)
  525. Return BitAND(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_CHILDEDGE) = $RBBS_CHILDEDGE
  526. EndFunc ;==>_GUICtrlRebar_GetBandStyleChildEdge
  527. ; #FUNCTION# ====================================================================================================================
  528. ; Author ........: Gary Frost
  529. ; Modified.......:
  530. ; ===============================================================================================================================
  531. Func _GUICtrlRebar_GetBandStyleFixedBMP($hWnd, $iIndex)
  532. Return BitAND(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_FIXEDBMP) = $RBBS_FIXEDBMP
  533. EndFunc ;==>_GUICtrlRebar_GetBandStyleFixedBMP
  534. ; #FUNCTION# ====================================================================================================================
  535. ; Author ........: Gary Frost
  536. ; Modified.......:
  537. ; ===============================================================================================================================
  538. Func _GUICtrlRebar_GetBandStyleFixedSize($hWnd, $iIndex)
  539. Return BitAND(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_FIXEDSIZE) = $RBBS_FIXEDSIZE
  540. EndFunc ;==>_GUICtrlRebar_GetBandStyleFixedSize
  541. ; #FUNCTION# ====================================================================================================================
  542. ; Author ........: Gary Frost
  543. ; Modified.......:
  544. ; ===============================================================================================================================
  545. Func _GUICtrlRebar_GetBandStyleGripperAlways($hWnd, $iIndex)
  546. Return BitAND(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_GRIPPERALWAYS) = $RBBS_GRIPPERALWAYS
  547. EndFunc ;==>_GUICtrlRebar_GetBandStyleGripperAlways
  548. ; #FUNCTION# ====================================================================================================================
  549. ; Author ........: Gary Frost
  550. ; Modified.......:
  551. ; ===============================================================================================================================
  552. Func _GUICtrlRebar_GetBandStyleHidden($hWnd, $iIndex)
  553. Return BitAND(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_HIDDEN) = $RBBS_HIDDEN
  554. EndFunc ;==>_GUICtrlRebar_GetBandStyleHidden
  555. ; #FUNCTION# ====================================================================================================================
  556. ; Author ........: Gary Frost
  557. ; Modified.......:
  558. ; ===============================================================================================================================
  559. Func _GUICtrlRebar_GetBandStyleHideTitle($hWnd, $iIndex)
  560. Return BitAND(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_HIDETITLE) = $RBBS_HIDETITLE
  561. EndFunc ;==>_GUICtrlRebar_GetBandStyleHideTitle
  562. ; #FUNCTION# ====================================================================================================================
  563. ; Author ........: Gary Frost
  564. ; Modified.......:
  565. ; ===============================================================================================================================
  566. Func _GUICtrlRebar_GetBandStyleNoGripper($hWnd, $iIndex)
  567. Return BitAND(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_NOGRIPPER) = $RBBS_NOGRIPPER
  568. EndFunc ;==>_GUICtrlRebar_GetBandStyleNoGripper
  569. ; #NO_DOC_FUNCTION# =============================================================================================================
  570. ; Name...........: _GUICtrlRebar_GetBandStyleNoVert
  571. ; Description ...: Determine if flag is set
  572. ; Syntax.........: _GUICtrlRebar_GetBandStyleNoVert ( $hWnd, $iIndex )
  573. ; Parameters ....: $hWnd - Handle to rebar control
  574. ; $iIndex - Zero-based index of the band
  575. ; Return values .: True - Flag is set (Don't show when vertical)
  576. ; False - Flag not set
  577. ; Author ........: Gary Frost
  578. ; Modified.......:
  579. ; Remarks .......:
  580. ; Related .......: _GUICtrlRebar_SetBandStyleNoVert, _GUICtrlRebar_GetBandStyle
  581. ; Link ..........:
  582. ; Example .......: Yes
  583. ; ===============================================================================================================================
  584. Func _GUICtrlRebar_GetBandStyleNoVert($hWnd, $iIndex)
  585. Return BitAND(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_NOVERT) = $RBBS_NOVERT
  586. EndFunc ;==>_GUICtrlRebar_GetBandStyleNoVert
  587. ; #FUNCTION# ====================================================================================================================
  588. ; Author ........: Gary Frost
  589. ; Modified.......:
  590. ; ===============================================================================================================================
  591. Func _GUICtrlRebar_GetBandStyleTopAlign($hWnd, $iIndex)
  592. Return BitAND(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_TOPALIGN) = $RBBS_TOPALIGN
  593. EndFunc ;==>_GUICtrlRebar_GetBandStyleTopAlign
  594. ; #FUNCTION# ====================================================================================================================
  595. ; Author ........: Gary Frost
  596. ; Modified.......:
  597. ; ===============================================================================================================================
  598. Func _GUICtrlRebar_GetBandStyleUseChevron($hWnd, $iIndex)
  599. Return BitAND(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_USECHEVRON) = $RBBS_USECHEVRON
  600. EndFunc ;==>_GUICtrlRebar_GetBandStyleUseChevron
  601. ; #FUNCTION# ====================================================================================================================
  602. ; Author ........: Gary Frost
  603. ; Modified.......:
  604. ; ===============================================================================================================================
  605. Func _GUICtrlRebar_GetBandStyleVariableHeight($hWnd, $iIndex)
  606. Return BitAND(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_VARIABLEHEIGHT) = $RBBS_VARIABLEHEIGHT
  607. EndFunc ;==>_GUICtrlRebar_GetBandStyleVariableHeight
  608. ; #FUNCTION# ====================================================================================================================
  609. ; Author ........: Gary Frost
  610. ; Modified.......:
  611. ; ===============================================================================================================================
  612. Func _GUICtrlRebar_GetBandRect($hWnd, $iIndex)
  613. Local $tRECT = _GUICtrlRebar_GetBandRectEx($hWnd, $iIndex)
  614. Local $aRect[4]
  615. $aRect[0] = DllStructGetData($tRECT, "Left")
  616. $aRect[1] = DllStructGetData($tRECT, "Top")
  617. $aRect[2] = DllStructGetData($tRECT, "Right")
  618. $aRect[3] = DllStructGetData($tRECT, "Bottom")
  619. Return $aRect
  620. EndFunc ;==>_GUICtrlRebar_GetBandRect
  621. ; #FUNCTION# ====================================================================================================================
  622. ; Author ........: Gary Frost
  623. ; Modified.......:
  624. ; ===============================================================================================================================
  625. Func _GUICtrlRebar_GetBandRectEx($hWnd, $iIndex)
  626. Local $tRECT = DllStructCreate($tagRECT)
  627. _SendMessage($hWnd, $RB_GETRECT, $iIndex, $tRECT, 0, "uint", "struct*")
  628. Return $tRECT
  629. EndFunc ;==>_GUICtrlRebar_GetBandRectEx
  630. ; #FUNCTION# ====================================================================================================================
  631. ; Author ........: Gary Frost
  632. ; Modified.......:
  633. ; ===============================================================================================================================
  634. Func _GUICtrlRebar_GetBandText($hWnd, $iIndex)
  635. Local $bUnicode = _GUICtrlRebar_GetUnicodeFormat($hWnd)
  636. Local $tINFO = DllStructCreate($tagREBARBANDINFO)
  637. Local $iSize = DllStructGetSize($tINFO)
  638. Local $tBuffer
  639. Local $iBuffer = 4096
  640. If $bUnicode Then
  641. $tBuffer = DllStructCreate("wchar Buffer[4096]")
  642. $iBuffer *= 2
  643. Else
  644. $tBuffer = DllStructCreate("char Buffer[4096]")
  645. EndIf
  646. DllStructSetData($tINFO, "cbSize", $iSize)
  647. DllStructSetData($tINFO, "fMask", $RBBIM_TEXT)
  648. DllStructSetData($tINFO, "cch", $iBuffer)
  649. Local $tMemMap
  650. Local $pMemory = _MemInit($hWnd, $iSize + $iBuffer, $tMemMap)
  651. Local $pText = $pMemory + $iSize
  652. DllStructSetData($tINFO, "lpText", $pText)
  653. _MemWrite($tMemMap, $tINFO, $pMemory, $iSize)
  654. Local $iRet
  655. If $bUnicode Then
  656. $iRet = _SendMessage($hWnd, $RB_GETBANDINFOW, $iIndex, $pMemory, 0, "wparam", "ptr")
  657. Else
  658. $iRet = _SendMessage($hWnd, $RB_GETBANDINFOA, $iIndex, $pMemory, 0, "wparam", "ptr")
  659. EndIf
  660. _MemRead($tMemMap, $pText, $tBuffer, $iBuffer)
  661. _MemFree($tMemMap)
  662. Return SetError($iRet = 0, 0, DllStructGetData($tBuffer, "Buffer"))
  663. EndFunc ;==>_GUICtrlRebar_GetBandText
  664. ; #FUNCTION# ====================================================================================================================
  665. ; Author ........: Gary Frost
  666. ; Modified.......:
  667. ; ===============================================================================================================================
  668. Func _GUICtrlRebar_GetBarHeight($hWnd)
  669. Return _SendMessage($hWnd, $RB_GETBARHEIGHT)
  670. EndFunc ;==>_GUICtrlRebar_GetBarHeight
  671. ; #FUNCTION# ====================================================================================================================
  672. ; Author ........: Gary Frost
  673. ; Modified.......:
  674. ; ===============================================================================================================================
  675. Func _GUICtrlRebar_GetBarInfo($hWnd)
  676. Local $tINFO = DllStructCreate($tagREBARINFO)
  677. DllStructSetData($tINFO, "cbSize", DllStructGetSize($tINFO))
  678. DllStructSetData($tINFO, "fMask", $RBIM_IMAGELIST)
  679. Local $iRet = _SendMessage($hWnd, $RB_GETBARINFO, 0, $tINFO, 0, "wparam", "struct*")
  680. Return SetError($iRet = 0, 0, DllStructGetData($tINFO, "himl"))
  681. EndFunc ;==>_GUICtrlRebar_GetBarInfo
  682. ; #FUNCTION# ====================================================================================================================
  683. ; Author ........: Gary Frost
  684. ; Modified.......:
  685. ; ===============================================================================================================================
  686. Func _GUICtrlRebar_GetBKColor($hWnd)
  687. Return _SendMessage($hWnd, $RB_GETBKCOLOR)
  688. EndFunc ;==>_GUICtrlRebar_GetBKColor
  689. ; #FUNCTION# ====================================================================================================================
  690. ; Author ........: Gary Frost
  691. ; Modified.......:
  692. ; ===============================================================================================================================
  693. Func _GUICtrlRebar_GetColorScheme($hWnd)
  694. Local $aColors[2]
  695. Local $tColorScheme = __GUICtrlRebar_GetColorSchemeEx($hWnd)
  696. If @error Then Return SetError(@error, @error, $aColors)
  697. $aColors[0] = DllStructGetData($tColorScheme, "BtnHighlight")
  698. $aColors[1] = DllStructGetData($tColorScheme, "BtnShadow")
  699. Return $aColors
  700. EndFunc ;==>_GUICtrlRebar_GetColorScheme
  701. ; #INTERNAL_USE_ONLY# ===========================================================================================================
  702. ; Name...........: __GUICtrlRebar_GetColorSchemeEx
  703. ; Description ...: Retrieves the color scheme information from the rebar control
  704. ; Syntax.........: __GUICtrlRebar_GetColorSchemeEx ( $hWnd )
  705. ; Parameters ....: $hWnd - Handle to rebar control
  706. ; Return values .: Success - $tagCOLORSCHEME structure
  707. ; Author ........: Gary Frost
  708. ; Modified.......:
  709. ; Remarks .......:
  710. ; Related .......: _GUICtrlRebar_GetColorScheme, $tagCOLORSCHEME
  711. ; Link ..........:
  712. ; Example .......: Yes
  713. ; ===============================================================================================================================
  714. Func __GUICtrlRebar_GetColorSchemeEx($hWnd)
  715. Local $tColorScheme = DllStructCreate($tagCOLORSCHEME)
  716. DllStructSetData($tColorScheme, "Size", DllStructGetSize($tColorScheme))
  717. Local $iRet = _SendMessage($hWnd, $RB_GETCOLORSCHEME, 0, $tColorScheme, 0, "wparam", "struct*")
  718. Return SetError($iRet = 0, 0, $tColorScheme)
  719. EndFunc ;==>__GUICtrlRebar_GetColorSchemeEx
  720. ; #FUNCTION# ====================================================================================================================
  721. ; Author ........: Gary Frost
  722. ; Modified.......:
  723. ; ===============================================================================================================================
  724. Func _GUICtrlRebar_GetRowCount($hWnd)
  725. Return _SendMessage($hWnd, $RB_GETROWCOUNT)
  726. EndFunc ;==>_GUICtrlRebar_GetRowCount
  727. ; #FUNCTION# ====================================================================================================================
  728. ; Author ........: Gary Frost
  729. ; Modified.......:
  730. ; ===============================================================================================================================
  731. Func _GUICtrlRebar_GetRowHeight($hWnd, $iIndex)
  732. Return _SendMessage($hWnd, $RB_GETROWHEIGHT, $iIndex)
  733. EndFunc ;==>_GUICtrlRebar_GetRowHeight
  734. ; #FUNCTION# ====================================================================================================================
  735. ; Author ........: Gary Frost
  736. ; Modified.......:
  737. ; ===============================================================================================================================
  738. Func _GUICtrlRebar_GetTextColor($hWnd)
  739. Return _SendMessage($hWnd, $RB_GETTEXTCOLOR)
  740. EndFunc ;==>_GUICtrlRebar_GetTextColor
  741. ; #FUNCTION# ====================================================================================================================
  742. ; Author ........: Gary Frost
  743. ; Modified.......:
  744. ; ===============================================================================================================================
  745. Func _GUICtrlRebar_GetToolTips($hWnd)
  746. Return _SendMessage($hWnd, $RB_GETTOOLTIPS, 0, 0, 0, "wparam", "lparam", "hwnd")
  747. EndFunc ;==>_GUICtrlRebar_GetToolTips
  748. ; #FUNCTION# ====================================================================================================================
  749. ; Author ........: Gary Frost
  750. ; Modified.......:
  751. ; ===============================================================================================================================
  752. Func _GUICtrlRebar_GetUnicodeFormat($hWnd)
  753. Return _SendMessage($hWnd, $RB_GETUNICODEFORMAT) <> 0
  754. EndFunc ;==>_GUICtrlRebar_GetUnicodeFormat
  755. ; #FUNCTION# ====================================================================================================================
  756. ; Author ........: Gary Frost
  757. ; Modified.......:
  758. ; ===============================================================================================================================
  759. Func _GUICtrlRebar_HitTest($hWnd, $iX = -1, $iY = -1)
  760. Local $iMode = Opt("MouseCoordMode", 1)
  761. Local $aPos = MouseGetPos()
  762. Opt("MouseCoordMode", $iMode)
  763. Local $tPoint = DllStructCreate($tagPOINT)
  764. DllStructSetData($tPoint, "X", $aPos[0])
  765. DllStructSetData($tPoint, "Y", $aPos[1])
  766. DllCall("user32.dll", "bool", "ScreenToClient", "hwnd", $hWnd, "struct*", $tPoint)
  767. If @error Then Return SetError(@error, @extended, 0)
  768. If $iX = -1 Then $iX = DllStructGetData($tPoint, "X")
  769. If $iY = -1 Then $iY = DllStructGetData($tPoint, "Y")
  770. Local $tTest = DllStructCreate($tagRBHITTESTINFO)
  771. DllStructSetData($tTest, "X", $iX)
  772. DllStructSetData($tTest, "Y", $iY)
  773. Local $iTest = DllStructGetSize($tTest)
  774. Local $tMemMap, $aTest[6]
  775. Local $pMemory = _MemInit($hWnd, $iTest, $tMemMap)
  776. _MemWrite($tMemMap, $tTest, $pMemory, $iTest)
  777. $aTest[0] = _SendMessage($hWnd, $RB_HITTEST, 0, $pMemory, 0, "wparam", "ptr")
  778. _MemRead($tMemMap, $pMemory, $tTest, $iTest)
  779. _MemFree($tMemMap)
  780. Local $iFlags = DllStructGetData($tTest, "flags")
  781. $aTest[1] = BitAND($iFlags, $RBHT_NOWHERE) <> 0
  782. $aTest[2] = BitAND($iFlags, $RBHT_CLIENT) <> 0
  783. $aTest[3] = BitAND($iFlags, $RBHT_CAPTION) <> 0
  784. $aTest[4] = BitAND($iFlags, $RBHT_CHEVRON) <> 0
  785. $aTest[5] = BitAND($iFlags, $RBHT_GRABBER) <> 0
  786. Return $aTest
  787. EndFunc ;==>_GUICtrlRebar_HitTest
  788. ; #FUNCTION# ====================================================================================================================
  789. ; Author ........: Gary Frost
  790. ; Modified.......:
  791. ; ===============================================================================================================================
  792. Func _GUICtrlRebar_IDToIndex($hWnd, $iID)
  793. Return _SendMessage($hWnd, $RB_IDTOINDEX, $iID)
  794. EndFunc ;==>_GUICtrlRebar_IDToIndex
  795. ; #FUNCTION# ====================================================================================================================
  796. ; Author ........: Gary Frost
  797. ; Modified.......:
  798. ; ===============================================================================================================================
  799. Func _GUICtrlRebar_MaximizeBand($hWnd, $iIndex, $bIdeal = True)
  800. _SendMessage($hWnd, $RB_MAXIMIZEBAND, $iIndex, $bIdeal)
  801. EndFunc ;==>_GUICtrlRebar_MaximizeBand
  802. ; #FUNCTION# ====================================================================================================================
  803. ; Author ........: Gary Frost
  804. ; Modified.......:
  805. ; ===============================================================================================================================
  806. Func _GUICtrlRebar_MinimizeBand($hWnd, $iIndex)
  807. _SendMessage($hWnd, $RB_MINIMIZEBAND, $iIndex)
  808. EndFunc ;==>_GUICtrlRebar_MinimizeBand
  809. ; #FUNCTION# ====================================================================================================================
  810. ; Author ........: Gary Frost
  811. ; Modified.......:
  812. ; ===============================================================================================================================
  813. Func _GUICtrlRebar_MoveBand($hWnd, $iIndexFrom, $iIndexTo)
  814. If $iIndexTo > _GUICtrlRebar_GetBandCount($hWnd) - 1 Then Return False
  815. Return _SendMessage($hWnd, $RB_MOVEBAND, $iIndexFrom, $iIndexTo) <> 0
  816. EndFunc ;==>_GUICtrlRebar_MoveBand
  817. ; #FUNCTION# ====================================================================================================================
  818. ; Author ........: Gary Frost
  819. ; Modified.......:
  820. ; ===============================================================================================================================
  821. Func _GUICtrlRebar_SetBandBackColor($hWnd, $iIndex, $iColor)
  822. Local $tINFO = DllStructCreate($tagREBARBANDINFO)
  823. Local $iSize = DllStructGetSize($tINFO)
  824. DllStructSetData($tINFO, "cbSize", $iSize)
  825. DllStructSetData($tINFO, "fMask", $RBBIM_COLORS)
  826. DllStructSetData($tINFO, "clrBack", $iColor)
  827. DllStructGetData($tINFO, "clrFore", _GUICtrlRebar_GetBandForeColor($hWnd, $iIndex))
  828. Local $iRet, $tMemMap
  829. Local $pMemory = _MemInit($hWnd, $iSize, $tMemMap)
  830. _MemWrite($tMemMap, $tINFO, $pMemory, $iSize)
  831. If _GUICtrlRebar_GetUnicodeFormat($hWnd) Then
  832. $iRet = _SendMessage($hWnd, $RB_SETBANDINFOW, $iIndex, $pMemory, 0, "wparam", "ptr") <> 0
  833. Else
  834. $iRet = _SendMessage($hWnd, $RB_SETBANDINFOA, $iIndex, $pMemory, 0, "wparam", "ptr") <> 0
  835. EndIf
  836. _MemFree($tMemMap)
  837. Return $iRet
  838. EndFunc ;==>_GUICtrlRebar_SetBandBackColor
  839. ; #FUNCTION# ====================================================================================================================
  840. ; Author ........: Gary Frost
  841. ; Modified.......:
  842. ; ===============================================================================================================================
  843. Func _GUICtrlRebar_SetBandForeColor($hWnd, $iIndex, $iColor)
  844. Local $tINFO = DllStructCreate($tagREBARBANDINFO)
  845. Local $iSize = DllStructGetSize($tINFO)
  846. DllStructSetData($tINFO, "cbSize", $iSize)
  847. DllStructSetData($tINFO, "fMask", $RBBIM_COLORS)
  848. DllStructSetData($tINFO, "clrFore", $iColor)
  849. DllStructSetData($tINFO, "clrBack", _GUICtrlRebar_GetBandBackColor($hWnd, $iIndex))
  850. Local $iRet, $tMemMap
  851. Local $pMemory = _MemInit($hWnd, $iSize, $tMemMap)
  852. _MemWrite($tMemMap, $tINFO, $pMemory, $iSize)
  853. If _GUICtrlRebar_GetUnicodeFormat($hWnd) Then
  854. $iRet = _SendMessage($hWnd, $RB_SETBANDINFOW, $iIndex, $pMemory, 0, "wparam", "ptr") <> 0
  855. Else
  856. $iRet = _SendMessage($hWnd, $RB_SETBANDINFOA, $iIndex, $pMemory, 0, "wparam", "ptr") <> 0
  857. EndIf
  858. _MemFree($tMemMap)
  859. Return $iRet
  860. EndFunc ;==>_GUICtrlRebar_SetBandForeColor
  861. ; #FUNCTION# ====================================================================================================================
  862. ; Author ........: Gary Frost
  863. ; Modified.......:
  864. ; ===============================================================================================================================
  865. Func _GUICtrlRebar_SetBandHeaderSize($hWnd, $iIndex, $iNewSize)
  866. Return __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $RBBIM_HEADERSIZE, "cxHeader", $iNewSize)
  867. EndFunc ;==>_GUICtrlRebar_SetBandHeaderSize
  868. ; #FUNCTION# ====================================================================================================================
  869. ; Author ........: Gary Frost
  870. ; Modified.......:
  871. ; ===============================================================================================================================
  872. Func _GUICtrlRebar_SetBandID($hWnd, $iIndex, $iID)
  873. Return __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $RBBIM_ID, "wID", $iID)
  874. EndFunc ;==>_GUICtrlRebar_SetBandID
  875. ; #FUNCTION# ====================================================================================================================
  876. ; Author ........: Gary Frost
  877. ; Modified.......:
  878. ; ===============================================================================================================================
  879. Func _GUICtrlRebar_SetBandIdealSize($hWnd, $iIndex, $iNewSize)
  880. Return __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $RBBIM_IDEALSIZE, "cxIdeal", $iNewSize)
  881. EndFunc ;==>_GUICtrlRebar_SetBandIdealSize
  882. ; #INTERNAL_USE_ONLY# ===========================================================================================================
  883. ; Name...........: __GUICtrlRebar_SetBandInfo
  884. ; Description ...: Set Ideal width of the band, in pixels.
  885. ; Syntax.........: __GUICtrlRebar_SetBandInfo ( $hWnd, $iIndex, $iMask, $sName, $iData )
  886. ; Parameters ....: $hWnd - Handle to rebar control
  887. ; $iIndex - Zero-based index of the band
  888. ; $iMask - Flags that indicate which members of this structure are valid or must be filled
  889. ; $sName - Name of the member
  890. ; $iData - Data for the member
  891. ; Return values .: Success - True
  892. ; Failure - False
  893. ; Author ........: Gary Frost
  894. ; Modified.......:
  895. ; Remarks .......:
  896. ; Related .......: __GUICtrlRebar_GetBandInfo
  897. ; Link ..........:
  898. ; Example .......: Yes
  899. ; ===============================================================================================================================
  900. Func __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $iMask, $sName, $iData)
  901. Local $tINFO = DllStructCreate($tagREBARBANDINFO)
  902. Local $iSize = DllStructGetSize($tINFO)
  903. DllStructSetData($tINFO, "cbSize", $iSize)
  904. DllStructSetData($tINFO, "fMask", $iMask)
  905. DllStructSetData($tINFO, $sName, $iData)
  906. Local $iRet, $tMemMap
  907. Local $pMemory = _MemInit($hWnd, $iSize, $tMemMap)
  908. _MemWrite($tMemMap, $tINFO, $pMemory, $iSize)
  909. If _GUICtrlRebar_GetUnicodeFormat($hWnd) Then
  910. $iRet = _SendMessage($hWnd, $RB_SETBANDINFOW, $iIndex, $pMemory, 0, "wparam", "ptr") <> 0
  911. Else
  912. $iRet = _SendMessage($hWnd, $RB_SETBANDINFOA, $iIndex, $pMemory, 0, "wparam", "ptr") <> 0
  913. EndIf
  914. _MemFree($tMemMap)
  915. Return $iRet
  916. EndFunc ;==>__GUICtrlRebar_SetBandInfo
  917. ; #FUNCTION# ====================================================================================================================
  918. ; Author ........: Gary Frost
  919. ; Modified.......:
  920. ; ===============================================================================================================================
  921. Func _GUICtrlRebar_SetBandLength($hWnd, $iIndex, $iLength)
  922. Return __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $RBBIM_SIZE, "cx", $iLength)
  923. EndFunc ;==>_GUICtrlRebar_SetBandLength
  924. ; #FUNCTION# ====================================================================================================================
  925. ; Author ........: Gary Frost
  926. ; Modified.......:
  927. ; ===============================================================================================================================
  928. Func _GUICtrlRebar_SetBandLParam($hWnd, $iIndex, $lParam)
  929. Return __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $RBBIM_LPARAM, "lParam", $lParam)
  930. EndFunc ;==>_GUICtrlRebar_SetBandLParam
  931. ; #FUNCTION# ====================================================================================================================
  932. ; Author ........: Gary Frost
  933. ; Modified.......:
  934. ; ===============================================================================================================================
  935. Func _GUICtrlRebar_SetBandStyle($hWnd, $iIndex, $iStyle)
  936. Return __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $RBBIM_STYLE, "fStyle", $iStyle)
  937. EndFunc ;==>_GUICtrlRebar_SetBandStyle
  938. ; #FUNCTION# ====================================================================================================================
  939. ; Author ........: Gary Frost
  940. ; Modified.......:
  941. ; ===============================================================================================================================
  942. Func _GUICtrlRebar_SetBandStyleBreak($hWnd, $iIndex, $bEnabled = True)
  943. If $bEnabled Then
  944. Return __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $RBBIM_STYLE, "fStyle", BitOR(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_BREAK))
  945. Else
  946. Return __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $RBBIM_STYLE, "fStyle", BitXOR(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_BREAK))
  947. EndIf
  948. EndFunc ;==>_GUICtrlRebar_SetBandStyleBreak
  949. ; #FUNCTION# ====================================================================================================================
  950. ; Author ........: Gary Frost
  951. ; Modified.......:
  952. ; ===============================================================================================================================
  953. Func _GUICtrlRebar_SetBandStyleChildEdge($hWnd, $iIndex, $bEnabled = True)
  954. If $bEnabled Then
  955. Return __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $RBBIM_STYLE, "fStyle", BitOR(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_CHILDEDGE))
  956. Else
  957. Return __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $RBBIM_STYLE, "fStyle", BitXOR(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_CHILDEDGE))
  958. EndIf
  959. EndFunc ;==>_GUICtrlRebar_SetBandStyleChildEdge
  960. ; #FUNCTION# ====================================================================================================================
  961. ; Author ........: Gary Frost
  962. ; Modified.......:
  963. ; ===============================================================================================================================
  964. Func _GUICtrlRebar_SetBandStyleFixedBMP($hWnd, $iIndex, $bEnabled = True)
  965. If $bEnabled Then
  966. Return __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $RBBIM_STYLE, "fStyle", BitOR(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_FIXEDBMP))
  967. Else
  968. Return __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $RBBIM_STYLE, "fStyle", BitXOR(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_FIXEDBMP))
  969. EndIf
  970. EndFunc ;==>_GUICtrlRebar_SetBandStyleFixedBMP
  971. ; #FUNCTION# ====================================================================================================================
  972. ; Author ........: Gary Frost
  973. ; Modified.......:
  974. ; ===============================================================================================================================
  975. Func _GUICtrlRebar_SetBandStyleFixedSize($hWnd, $iIndex, $bEnabled = True)
  976. If $bEnabled Then
  977. Return __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $RBBIM_STYLE, "fStyle", BitOR(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_FIXEDSIZE))
  978. Else
  979. Return __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $RBBIM_STYLE, "fStyle", BitXOR(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_FIXEDSIZE))
  980. EndIf
  981. EndFunc ;==>_GUICtrlRebar_SetBandStyleFixedSize
  982. ; #FUNCTION# ====================================================================================================================
  983. ; Author ........: Gary Frost
  984. ; Modified.......:
  985. ; ===============================================================================================================================
  986. Func _GUICtrlRebar_SetBandStyleGripperAlways($hWnd, $iIndex, $bEnabled = True)
  987. If $bEnabled Then
  988. Return __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $RBBIM_STYLE, "fStyle", BitOR(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_GRIPPERALWAYS))
  989. Else
  990. Return __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $RBBIM_STYLE, "fStyle", BitXOR(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_GRIPPERALWAYS))
  991. EndIf
  992. EndFunc ;==>_GUICtrlRebar_SetBandStyleGripperAlways
  993. ; #FUNCTION# ====================================================================================================================
  994. ; Author ........: Gary Frost
  995. ; Modified.......:
  996. ; ===============================================================================================================================
  997. Func _GUICtrlRebar_SetBandStyleHidden($hWnd, $iIndex, $bEnabled = True)
  998. If $bEnabled Then
  999. Return __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $RBBIM_STYLE, "fStyle", BitOR(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_HIDDEN))
  1000. Else
  1001. Return __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $RBBIM_STYLE, "fStyle", BitXOR(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_HIDDEN))
  1002. EndIf
  1003. EndFunc ;==>_GUICtrlRebar_SetBandStyleHidden
  1004. ; #FUNCTION# ====================================================================================================================
  1005. ; Author ........: Gary Frost
  1006. ; Modified.......:
  1007. ; ===============================================================================================================================
  1008. Func _GUICtrlRebar_SetBandStyleHideTitle($hWnd, $iIndex, $bEnabled = True)
  1009. If $bEnabled Then
  1010. Return __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $RBBIM_STYLE, "fStyle", BitOR(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_HIDETITLE))
  1011. Else
  1012. Return __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $RBBIM_STYLE, "fStyle", BitXOR(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_HIDETITLE))
  1013. EndIf
  1014. EndFunc ;==>_GUICtrlRebar_SetBandStyleHideTitle
  1015. ; #FUNCTION# ====================================================================================================================
  1016. ; Author ........: Gary Frost
  1017. ; Modified.......:
  1018. ; ===============================================================================================================================
  1019. Func _GUICtrlRebar_SetBandStyleNoGripper($hWnd, $iIndex, $bEnabled = True)
  1020. If $bEnabled Then
  1021. Return __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $RBBIM_STYLE, "fStyle", BitOR(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_NOGRIPPER))
  1022. Else
  1023. Return __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $RBBIM_STYLE, "fStyle", BitXOR(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_NOGRIPPER))
  1024. EndIf
  1025. EndFunc ;==>_GUICtrlRebar_SetBandStyleNoGripper
  1026. ; #NO_DOC_FUNCTION# =============================================================================================================
  1027. ; Name...........: _GUICtrlRebar_SetBandStyleNoVert
  1028. ; Description ...: Set whether to Don't show when vertical
  1029. ; Syntax.........: _GUICtrlRebar_SetBandStyleNoVert ( $hWnd, $iIndex [, $bEnabled = True] )
  1030. ; Parameters ....: $hWnd - Handle to rebar control
  1031. ; $iIndex - Zero-based index of the band
  1032. ; $bEnabled - If True the item state is set, otherwise it is not set
  1033. ; Return values .: Success - True
  1034. ; Failure - False
  1035. ; Author ........: Gary Frost
  1036. ; Modified.......:
  1037. ; Remarks .......:
  1038. ; Related .......: _GUICtrlRebar_GetBandStyleNoVert, _GUICtrlRebar_SetBandStyle
  1039. ; Link ..........:
  1040. ; Example .......: Yes
  1041. ; ===============================================================================================================================
  1042. Func _GUICtrlRebar_SetBandStyleNoVert($hWnd, $iIndex, $bEnabled = True)
  1043. If $bEnabled Then
  1044. Return __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $RBBIM_STYLE, "fStyle", BitOR(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_NOVERT))
  1045. Else
  1046. Return __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $RBBIM_STYLE, "fStyle", BitXOR(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_NOVERT))
  1047. EndIf
  1048. EndFunc ;==>_GUICtrlRebar_SetBandStyleNoVert
  1049. ; #FUNCTION# ====================================================================================================================
  1050. ; Author ........: Gary Frost
  1051. ; Modified.......:
  1052. ; ===============================================================================================================================
  1053. Func _GUICtrlRebar_SetBandStyleTopAlign($hWnd, $iIndex, $bEnabled = True)
  1054. If $bEnabled Then
  1055. Return __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $RBBIM_STYLE, "fStyle", BitOR(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_TOPALIGN))
  1056. Else
  1057. Return __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $RBBIM_STYLE, "fStyle", BitXOR(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_TOPALIGN))
  1058. EndIf
  1059. EndFunc ;==>_GUICtrlRebar_SetBandStyleTopAlign
  1060. ; #FUNCTION# ====================================================================================================================
  1061. ; Author ........: Gary Frost
  1062. ; Modified.......:
  1063. ; ===============================================================================================================================
  1064. Func _GUICtrlRebar_SetBandStyleUseChevron($hWnd, $iIndex, $bEnabled = True)
  1065. If $bEnabled Then
  1066. Return __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $RBBIM_STYLE, "fStyle", BitOR(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_USECHEVRON))
  1067. Else
  1068. Return __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $RBBIM_STYLE, "fStyle", BitXOR(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_USECHEVRON))
  1069. EndIf
  1070. EndFunc ;==>_GUICtrlRebar_SetBandStyleUseChevron
  1071. ; #FUNCTION# ====================================================================================================================
  1072. ; Author ........: Gary Frost
  1073. ; Modified.......:
  1074. ; ===============================================================================================================================
  1075. Func _GUICtrlRebar_SetBandStyleVariableHeight($hWnd, $iIndex, $bEnabled = True)
  1076. If $bEnabled Then
  1077. Return __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $RBBIM_STYLE, "fStyle", BitOR(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_VARIABLEHEIGHT))
  1078. Else
  1079. Return __GUICtrlRebar_SetBandInfo($hWnd, $iIndex, $RBBIM_STYLE, "fStyle", BitXOR(_GUICtrlRebar_GetBandStyle($hWnd, $iIndex), $RBBS_VARIABLEHEIGHT))
  1080. EndIf
  1081. EndFunc ;==>_GUICtrlRebar_SetBandStyleVariableHeight
  1082. ; #FUNCTION# ====================================================================================================================
  1083. ; Author ........: Gary Frost
  1084. ; Modified.......:
  1085. ; ===============================================================================================================================
  1086. Func _GUICtrlRebar_SetBandText($hWnd, $iIndex, $sText)
  1087. Local $bUnicode = _GUICtrlRebar_GetUnicodeFormat($hWnd)
  1088. Local $tINFO = DllStructCreate($tagREBARBANDINFO)
  1089. Local $iSize = DllStructGetSize($tINFO)
  1090. Local $iBuffer = StringLen($sText) + 1
  1091. Local $tBuffer
  1092. If $bUnicode Then
  1093. $tBuffer = DllStructCreate("wchar Buffer[" & $iBuffer & "]")
  1094. $iBuffer *= 2
  1095. Else
  1096. $tBuffer = DllStructCreate("char Buffer[" & $iBuffer & "]")
  1097. EndIf
  1098. DllStructSetData($tBuffer, "Buffer", $sText)
  1099. DllStructSetData($tINFO, "cbSize", $iSize)
  1100. DllStructSetData($tINFO, "fMask", $RBBIM_TEXT)
  1101. DllStructSetData($tINFO, "cch", $iBuffer)
  1102. Local $iRet, $tMemMap
  1103. Local $pMemory = _MemInit($hWnd, $iSize + $iBuffer, $tMemMap)
  1104. Local $pText = $pMemory + $iSize
  1105. DllStructSetData($tINFO, "lpText", $pText)
  1106. _MemWrite($tMemMap, $tINFO, $pMemory, $iSize)
  1107. _MemWrite($tMemMap, $tBuffer, $pText, $iBuffer)
  1108. If $bUnicode Then
  1109. $iRet = _SendMessage($hWnd, $RB_SETBANDINFOW, $iIndex, $pMemory, 0, "wparam", "ptr")
  1110. Else
  1111. $iRet = _SendMessage($hWnd, $RB_SETBANDINFOA, $iIndex, $pMemory, 0, "wparam", "ptr")
  1112. EndIf
  1113. _MemFree($tMemMap)
  1114. Return $iRet <> 0
  1115. EndFunc ;==>_GUICtrlRebar_SetBandText
  1116. ; #FUNCTION# ====================================================================================================================
  1117. ; Author ........: Gary Frost
  1118. ; Modified.......:
  1119. ; ===============================================================================================================================
  1120. Func _GUICtrlRebar_SetBKColor($hWnd, $iColor)
  1121. Return _SendMessage($hWnd, $RB_SETBKCOLOR, 0, $iColor)
  1122. EndFunc ;==>_GUICtrlRebar_SetBKColor
  1123. ; #FUNCTION# ====================================================================================================================
  1124. ; Author ........: Gary Frost
  1125. ; Modified.......:
  1126. ; ===============================================================================================================================
  1127. Func _GUICtrlRebar_SetBarInfo($hWnd, $hIml)
  1128. Local $tINFO = DllStructCreate($tagREBARINFO)
  1129. DllStructSetData($tINFO, "cbSize", DllStructGetSize($tINFO))
  1130. DllStructSetData($tINFO, "fMask", $RBIM_IMAGELIST)
  1131. DllStructSetData($tINFO, "himl", $hIml)
  1132. Return _SendMessage($hWnd, $RB_SETBARINFO, 0, $tINFO, 0, "wparam", "struct*") <> 0
  1133. EndFunc ;==>_GUICtrlRebar_SetBarInfo
  1134. ; #FUNCTION# ====================================================================================================================
  1135. ; Author ........: Gary Frost
  1136. ; Modified.......:
  1137. ; ===============================================================================================================================
  1138. Func _GUICtrlRebar_SetColorScheme($hWnd, $iBtnHighlight, $iBtnShadow)
  1139. Local $tINFO = DllStructCreate($tagCOLORSCHEME)
  1140. Local $iSize = DllStructGetSize($tINFO)
  1141. DllStructSetData($tINFO, "Size", $iSize)
  1142. DllStructSetData($tINFO, "BtnHighlight", $iBtnHighlight)
  1143. DllStructSetData($tINFO, "BtnShadow", $iBtnShadow)
  1144. Local $tMemMap
  1145. Local $pMemory = _MemInit($hWnd, $iSize, $tMemMap)
  1146. _MemWrite($tMemMap, $tINFO, $pMemory, $iSize)
  1147. _SendMessage($hWnd, $RB_SETCOLORSCHEME, 0, $pMemory, 0, "wparam", "ptr")
  1148. _MemFree($tMemMap)
  1149. EndFunc ;==>_GUICtrlRebar_SetColorScheme
  1150. ; #FUNCTION# ====================================================================================================================
  1151. ; Author ........: Gary Frost
  1152. ; Modified.......:
  1153. ; ===============================================================================================================================
  1154. Func _GUICtrlRebar_SetTextColor($hWnd, $iColor)
  1155. Return _SendMessage($hWnd, $RB_SETTEXTCOLOR, 0, $iColor)
  1156. EndFunc ;==>_GUICtrlRebar_SetTextColor
  1157. ; #FUNCTION# ====================================================================================================================
  1158. ; Author ........: Gary Frost
  1159. ; Modified.......:
  1160. ; ===============================================================================================================================
  1161. Func _GUICtrlRebar_SetToolTips($hWnd, $hToolTip)
  1162. _SendMessage($hWnd, $RB_SETTOOLTIPS, $hToolTip, 0, 0, "hwnd")
  1163. EndFunc ;==>_GUICtrlRebar_SetToolTips
  1164. ; #FUNCTION# ====================================================================================================================
  1165. ; Author ........: Gary Frost
  1166. ; Modified.......:
  1167. ; ===============================================================================================================================
  1168. Func _GUICtrlRebar_SetUnicodeFormat($hWnd, $bUnicode = True)
  1169. Return _SendMessage($hWnd, $RB_SETUNICODEFORMAT, $bUnicode)
  1170. EndFunc ;==>_GUICtrlRebar_SetUnicodeFormat
  1171. ; #FUNCTION# ====================================================================================================================
  1172. ; Author ........: Gary Frost
  1173. ; Modified.......:
  1174. ; ===============================================================================================================================
  1175. Func _GUICtrlRebar_ShowBand($hWnd, $iIndex, $bShow = True)
  1176. Return _SendMessage($hWnd, $RB_SHOWBAND, $iIndex, $bShow) <> 0
  1177. EndFunc ;==>_GUICtrlRebar_ShowBand