GuiTab.au3 40 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864
  1. #include-once
  2. #include "Memory.au3"
  3. #include "SendMessage.au3"
  4. #include "TabConstants.au3"
  5. #include "UDFGlobalID.au3"
  6. #include "WinAPIConv.au3"
  7. #include "WinAPIHObj.au3"
  8. #include "WinAPISysInternals.au3"
  9. ; #INDEX# =======================================================================================================================
  10. ; Title .........: Tab_Control
  11. ; AutoIt Version : 3.3.14.5
  12. ; Language ......: English
  13. ; Description ...: Functions that assist with Tab control management.
  14. ; A tab control is analogous to the dividers in a notebook or the labels in a file cabinet. By using a tab
  15. ; control, an application can define multiple pages for the same area of a window or dialog box. Each page
  16. ; consists of a certain type of information or a group of controls that the application displays when the user
  17. ; selects the corresponding tab.
  18. ; Author(s) .....: Paul Campbell (PaulIA), Gary Frost (gafrost)
  19. ; ===============================================================================================================================
  20. ; #VARIABLES# ===================================================================================================================
  21. Global $__g_hTabLastWnd
  22. ; ===============================================================================================================================
  23. ; #CONSTANTS# ===================================================================================================================
  24. Global Const $__TABCONSTANT_ClassName = "SysTabControl32"
  25. Global Const $__TABCONSTANT_WS_CLIPSIBLINGS = 0x04000000
  26. Global Const $__TABCONSTANT_WM_NOTIFY = 0x004E
  27. Global Const $__TABCONSTANT_DEFAULT_GUI_FONT = 17
  28. ; ===============================================================================================================================
  29. ; #CURRENT# =====================================================================================================================
  30. ; _GUICtrlTab_ActivateTab
  31. ; _GUICtrlTab_ClickTab
  32. ; _GUICtrlTab_Create
  33. ; _GUICtrlTab_DeleteAllItems
  34. ; _GUICtrlTab_DeleteItem
  35. ; _GUICtrlTab_DeselectAll
  36. ; _GUICtrlTab_Destroy
  37. ; _GUICtrlTab_FindTab
  38. ; _GUICtrlTab_GetCurFocus
  39. ; _GUICtrlTab_GetCurSel
  40. ; _GUICtrlTab_GetDisplayRect
  41. ; _GUICtrlTab_GetDisplayRectEx
  42. ; _GUICtrlTab_GetExtendedStyle
  43. ; _GUICtrlTab_GetImageList
  44. ; _GUICtrlTab_GetItem
  45. ; _GUICtrlTab_GetItemCount
  46. ; _GUICtrlTab_GetItemImage
  47. ; _GUICtrlTab_GetItemParam
  48. ; _GUICtrlTab_GetItemRect
  49. ; _GUICtrlTab_GetItemRectEx
  50. ; _GUICtrlTab_GetItemState
  51. ; _GUICtrlTab_GetItemText
  52. ; _GUICtrlTab_GetRowCount
  53. ; _GUICtrlTab_GetToolTips
  54. ; _GUICtrlTab_GetUnicodeFormat
  55. ; _GUICtrlTab_HighlightItem
  56. ; _GUICtrlTab_HitTest
  57. ; _GUICtrlTab_InsertItem
  58. ; _GUICtrlTab_RemoveImage
  59. ; _GUICtrlTab_SetCurFocus
  60. ; _GUICtrlTab_SetCurSel
  61. ; _GUICtrlTab_SetExtendedStyle
  62. ; _GUICtrlTab_SetImageList
  63. ; _GUICtrlTab_SetItem
  64. ; _GUICtrlTab_SetItemImage
  65. ; _GUICtrlTab_SetItemParam
  66. ; _GUICtrlTab_SetItemSize
  67. ; _GUICtrlTab_SetItemState
  68. ; _GUICtrlTab_SetItemText
  69. ; _GUICtrlTab_SetMinTabWidth
  70. ; _GUICtrlTab_SetPadding
  71. ; _GUICtrlTab_SetToolTips
  72. ; _GUICtrlTab_SetUnicodeFormat
  73. ; ===============================================================================================================================
  74. ; #INTERNAL_USE_ONLY# ===========================================================================================================
  75. ; $tagTCITEM
  76. ; $tagTCHITTESTINFO
  77. ; __GUICtrlTab_AdjustRect
  78. ; ===============================================================================================================================
  79. ; #INTERNAL_USE_ONLY# ===========================================================================================================
  80. ; Name...........: $tagTCITEM
  81. ; Description ...: Specifies or receives the attributes of a tab item
  82. ; Fields ........: Mask - Value that specifies which members to retrieve or set:
  83. ; |$TCIF_IMAGE - The Image member is valid
  84. ; |$TCIF_PARAM - The Param member is valid
  85. ; |$TCIF_RTLREADING - The string pointed to by Text will be displayed in the opposite direction
  86. ; |$TCIF_STATE - The State member is valid
  87. ; |$TCIF_TEXT - The Text member is valid
  88. ; State - Specifies the item's current state if information is being retrieved. If item information is being
  89. ; +set this member contains the state value to be set for the item.
  90. ; StateMask - Specifies which bits of the dwState member contain valid information
  91. ; Text - String that contains the tab text when item information is being set. If item information is being
  92. ; +retrieved, this member specifies the address of the buffer that receives the tab text.
  93. ; TextMax - Size of the buffer pointed to by the Text member. If the structure is not receiving information,
  94. ; +this member is ignored.
  95. ; Image - Index in the tab control's image list, or -1 if there is no image for the tab.
  96. ; Param - Application-defined data associated with the tab control item
  97. ; Author ........: Paul Campbell (PaulIA)
  98. ; Remarks .......:
  99. ; ===============================================================================================================================
  100. Global Const $tagTCITEM = "uint Mask;dword State;dword StateMask;ptr Text;int TextMax;int Image;lparam Param"
  101. ; #INTERNAL_USE_ONLY# ===========================================================================================================
  102. ; Name...........: $tagTCHITTESTINFO
  103. ; Description ...: Contains information about a hit test
  104. ; Fields ........: X - X position to hit test
  105. ; Y - Y position to hit test
  106. ; Flags - Results of a hit test. The control sets this member to one of the following values:
  107. ; |$TCHT_NOWHERE - The position is not over a tab
  108. ; |$TCHT_ONITEM - The position is over a tab but not over its icon or its text
  109. ; |$TCHT_ONITEMICON - The position is over a tab's icon
  110. ; |$TCHT_ONITEMLABEL - The position is over a tab's text
  111. ; |$TCHT_ONITEM - Bitwise OR of $TCHT_ONITEMICON and $TCHT_ONITEMLABEL
  112. ; Author ........: Paul Campbell (PaulIA)
  113. ; Remarks .......:
  114. ; ===============================================================================================================================
  115. Global Const $tagTCHITTESTINFO = $tagPOINT & ";uint Flags"
  116. ; #INTERNAL_USE_ONLY# ===========================================================================================================
  117. ; Name...........: __GUICtrlTab_AdjustRect
  118. ; Description ...: Calculates a tab control's display area given a window rectangle
  119. ; Syntax.........: __GUICtrlTab_AdjustRect ( $hWnd, ByRef $tRECT [, $bLarger = False] )
  120. ; Parameters ....: $hWnd - Handle to the control
  121. ; $tRECT - $tagRECT structure that holds a window or text display rectangle
  122. ; $bLarger - Value that specifies which operation to perform. If True, $tRECT is used to specify a text
  123. ; +display rectangle and it receives the corresponding window rectangle. If False, $tRECT is used to specify a
  124. ; +window rectangle and it receives the corresponding text display rectangle.
  125. ; Return values .: Success - $tagRECT structure with requested coordinates
  126. ; Author ........: Paul Campbell (PaulIA)
  127. ; Modified.......: Gary Frost (gafrost)
  128. ; Remarks .......: This message applies only to tab controls that are at the top. It does not apply to tab controls that are on
  129. ; the sides or bottom.
  130. ; Related .......: $tagRECT
  131. ; Link ..........:
  132. ; Example .......:
  133. ; ===============================================================================================================================
  134. Func __GUICtrlTab_AdjustRect($hWnd, ByRef $tRECT, $bLarger = False)
  135. If IsHWnd($hWnd) Then
  136. If _WinAPI_InProcess($hWnd, $__g_hTabLastWnd) Then
  137. _SendMessage($hWnd, $TCM_ADJUSTRECT, $bLarger, $tRECT, 0, "wparam", "struct*")
  138. Else
  139. Local $iRect = DllStructGetSize($tRECT)
  140. Local $tMemMap
  141. Local $pMemory = _MemInit($hWnd, $iRect, $tMemMap)
  142. _MemWrite($tMemMap, $tRECT)
  143. _SendMessage($hWnd, $TCM_ADJUSTRECT, $bLarger, $pMemory, 0, "wparam", "ptr")
  144. _MemRead($tMemMap, $pMemory, $tRECT, $iRect)
  145. _MemFree($tMemMap)
  146. EndIf
  147. EndIf
  148. Return $tRECT
  149. EndFunc ;==>__GUICtrlTab_AdjustRect
  150. ; #FUNCTION# ====================================================================================================================
  151. ; Author ........: Prog@ndy
  152. ; Modified.......:
  153. ; ===============================================================================================================================
  154. Func _GUICtrlTab_ActivateTab($hWnd, $iIndex)
  155. Local $nIndX
  156. ; first, get Handle and CtrlID of TabControl
  157. If $hWnd = -1 Then $hWnd = GUICtrlGetHandle(-1)
  158. If IsHWnd($hWnd) Then
  159. $nIndX = _WinAPI_GetDlgCtrlID($hWnd)
  160. Else
  161. $nIndX = $hWnd
  162. $hWnd = GUICtrlGetHandle($hWnd)
  163. EndIf
  164. Local $hParent = _WinAPI_GetParent($hWnd)
  165. If @error Then Return SetError(1, 0, -1)
  166. ; create Struct for the Messages
  167. Local $tNmhdr = DllStructCreate($tagNMHDR)
  168. DllStructSetData($tNmhdr, 1, $hWnd)
  169. DllStructSetData($tNmhdr, 2, $nIndX)
  170. DllStructSetData($tNmhdr, 3, $TCN_SELCHANGING)
  171. _SendMessage($hParent, $__TABCONSTANT_WM_NOTIFY, $nIndX, $tNmhdr, 0, "wparam", "struct*")
  172. ; select TabItem
  173. Local $iRet = _GUICtrlTab_SetCurSel($hWnd, $iIndex)
  174. DllStructSetData($tNmhdr, 3, $TCN_SELCHANGE)
  175. _SendMessage($hParent, $__TABCONSTANT_WM_NOTIFY, $nIndX, $tNmhdr, 0, "wparam", "struct*")
  176. Return $iRet
  177. EndFunc ;==>_GUICtrlTab_ActivateTab
  178. ; #FUNCTION# ====================================================================================================================
  179. ; Author ........: Paul Campbell (PaulIA)
  180. ; Modified.......: Gary Frost (gafrost), PsaltyDS
  181. ; ===============================================================================================================================
  182. Func _GUICtrlTab_ClickTab($hWnd, $iIndex, $sButton = "left", $bMove = False, $iClicks = 1, $iSpeed = 1)
  183. If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)
  184. Local $iX, $iY
  185. If Not $bMove Then
  186. ; Don't move mouse, use ControlClick()
  187. Local $hWinParent = _WinAPI_GetParent($hWnd)
  188. Local $avTabPos = _GUICtrlTab_GetItemRect($hWnd, $iIndex)
  189. $iX = $avTabPos[0] + (($avTabPos[2] - $avTabPos[0]) / 2)
  190. $iY = $avTabPos[1] + (($avTabPos[3] - $avTabPos[1]) / 2)
  191. ControlClick($hWinParent, "", $hWnd, $sButton, $iClicks, $iX, $iY)
  192. Else
  193. ; Original code to move mouse and click (requires active window)
  194. Local $tRECT = _GUICtrlTab_GetItemRectEx($hWnd, $iIndex)
  195. Local $tPoint = _WinAPI_PointFromRect($tRECT, True)
  196. $tPoint = _WinAPI_ClientToScreen($hWnd, $tPoint)
  197. _WinAPI_GetXYFromPoint($tPoint, $iX, $iY)
  198. Local $iMode = Opt("MouseCoordMode", 1)
  199. MouseClick($sButton, $iX, $iY, $iClicks, $iSpeed)
  200. Opt("MouseCoordMode", $iMode)
  201. EndIf
  202. EndFunc ;==>_GUICtrlTab_ClickTab
  203. ; #FUNCTION# ====================================================================================================================
  204. ; Author ........: Paul Campbell (PaulIA)
  205. ; Modified.......: Gary Frost
  206. ; ===============================================================================================================================
  207. Func _GUICtrlTab_Create($hWnd, $iX, $iY, $iWidth = 150, $iHeight = 150, $iStyle = 0x00000040, $iExStyle = 0x00000000)
  208. If Not IsHWnd($hWnd) Then
  209. ; Invalid Window handle for _GUICtrlTab_Create 1st parameter
  210. Return SetError(1, 0, 0)
  211. EndIf
  212. If $iWidth = -1 Then $iWidth = 150
  213. If $iHeight = -1 Then $iHeight = 150
  214. If $iStyle = -1 Then $iStyle = $TCS_HOTTRACK
  215. If $iExStyle = -1 Then $iExStyle = 0x00000000
  216. $iStyle = BitOR($iStyle, $__UDFGUICONSTANT_WS_CHILD, $__TABCONSTANT_WS_CLIPSIBLINGS, $__UDFGUICONSTANT_WS_VISIBLE)
  217. Local $nCtrlID = __UDF_GetNextGlobalID($hWnd)
  218. If @error Then Return SetError(@error, @extended, 0)
  219. Local $hTab = _WinAPI_CreateWindowEx($iExStyle, $__TABCONSTANT_ClassName, "", $iStyle, $iX, $iY, $iWidth, $iHeight, $hWnd, $nCtrlID)
  220. _WinAPI_SetFont($hTab, _WinAPI_GetStockObject($__TABCONSTANT_DEFAULT_GUI_FONT))
  221. Return $hTab
  222. EndFunc ;==>_GUICtrlTab_Create
  223. ; #FUNCTION# ====================================================================================================================
  224. ; Author ........: Gary Frost (gafrost)
  225. ; Modified.......:
  226. ; ===============================================================================================================================
  227. Func _GUICtrlTab_DeleteAllItems($hWnd)
  228. If IsHWnd($hWnd) Then
  229. Return _SendMessage($hWnd, $TCM_DELETEALLITEMS) <> 0
  230. Else
  231. Return GUICtrlSendMsg($hWnd, $TCM_DELETEALLITEMS, 0, 0) <> 0
  232. EndIf
  233. EndFunc ;==>_GUICtrlTab_DeleteAllItems
  234. ; #FUNCTION# ====================================================================================================================
  235. ; Author ........: Gary Frost (gafrost)
  236. ; Modified.......:
  237. ; ===============================================================================================================================
  238. Func _GUICtrlTab_DeleteItem($hWnd, $iIndex)
  239. If IsHWnd($hWnd) Then
  240. Return _SendMessage($hWnd, $TCM_DELETEITEM, $iIndex) <> 0
  241. Else
  242. Return GUICtrlSendMsg($hWnd, $TCM_DELETEITEM, $iIndex, 0) <> 0
  243. EndIf
  244. EndFunc ;==>_GUICtrlTab_DeleteItem
  245. ; #FUNCTION# ====================================================================================================================
  246. ; Author ........: Gary Frost (gafrost)
  247. ; Modified.......:
  248. ; ===============================================================================================================================
  249. Func _GUICtrlTab_DeselectAll($hWnd, $bExclude = True)
  250. If IsHWnd($hWnd) Then
  251. _SendMessage($hWnd, $TCM_DESELECTALL, $bExclude)
  252. Else
  253. GUICtrlSendMsg($hWnd, $TCM_DESELECTALL, $bExclude, 0)
  254. EndIf
  255. EndFunc ;==>_GUICtrlTab_DeselectAll
  256. ; #FUNCTION# ====================================================================================================================
  257. ; Author ........: Gary Frost (gafrost)
  258. ; Modified.......:
  259. ; ===============================================================================================================================
  260. Func _GUICtrlTab_Destroy(ByRef $hWnd)
  261. If Not _WinAPI_IsClassName($hWnd, $__TABCONSTANT_ClassName) Then Return SetError(2, 2, False)
  262. Local $iDestroyed = 0
  263. If IsHWnd($hWnd) Then
  264. If _WinAPI_InProcess($hWnd, $__g_hTabLastWnd) Then
  265. Local $nCtrlID = _WinAPI_GetDlgCtrlID($hWnd)
  266. Local $hParent = _WinAPI_GetParent($hWnd)
  267. $iDestroyed = _WinAPI_DestroyWindow($hWnd)
  268. Local $iRet = __UDF_FreeGlobalID($hParent, $nCtrlID)
  269. If Not $iRet Then
  270. ; can check for errors here if needed, for debug
  271. EndIf
  272. Else
  273. ; Not Allowed to Destroy Other Applications Control(s)
  274. Return SetError(1, 1, False)
  275. EndIf
  276. Else
  277. $iDestroyed = GUICtrlDelete($hWnd)
  278. EndIf
  279. If $iDestroyed Then $hWnd = 0
  280. Return $iDestroyed <> 0
  281. EndFunc ;==>_GUICtrlTab_Destroy
  282. ; #FUNCTION# ====================================================================================================================
  283. ; Author ........: Paul Campbell (PaulIA)
  284. ; Modified.......:
  285. ; ===============================================================================================================================
  286. Func _GUICtrlTab_FindTab($hWnd, $sText, $bInStr = False, $iStart = 0)
  287. Local $sTab
  288. For $iI = $iStart To _GUICtrlTab_GetItemCount($hWnd)
  289. $sTab = _GUICtrlTab_GetItemText($hWnd, $iI)
  290. Switch $bInStr
  291. Case False
  292. If $sTab = $sText Then Return $iI
  293. Case True
  294. If StringInStr($sTab, $sText) Then Return $iI
  295. EndSwitch
  296. Next
  297. Return -1
  298. EndFunc ;==>_GUICtrlTab_FindTab
  299. ; #FUNCTION# ====================================================================================================================
  300. ; Author ........: Gary Frost (gafrost)
  301. ; Modified.......:
  302. ; ===============================================================================================================================
  303. Func _GUICtrlTab_GetCurFocus($hWnd)
  304. If IsHWnd($hWnd) Then
  305. Return _SendMessage($hWnd, $TCM_GETCURFOCUS)
  306. Else
  307. Return GUICtrlSendMsg($hWnd, $TCM_GETCURFOCUS, 0, 0)
  308. EndIf
  309. EndFunc ;==>_GUICtrlTab_GetCurFocus
  310. ; #FUNCTION# ====================================================================================================================
  311. ; Author ........: Gary Frost (gafrost)
  312. ; Modified.......:
  313. ; ===============================================================================================================================
  314. Func _GUICtrlTab_GetCurSel($hWnd)
  315. If IsHWnd($hWnd) Then
  316. Return _SendMessage($hWnd, $TCM_GETCURSEL)
  317. Else
  318. Return GUICtrlSendMsg($hWnd, $TCM_GETCURSEL, 0, 0)
  319. EndIf
  320. EndFunc ;==>_GUICtrlTab_GetCurSel
  321. ; #FUNCTION# ====================================================================================================================
  322. ; Author ........: Paul Campbell (PaulIA)
  323. ; Modified.......:
  324. ; ===============================================================================================================================
  325. Func _GUICtrlTab_GetDisplayRect($hWnd)
  326. Local $aRect[4]
  327. Local $tRECT = _GUICtrlTab_GetDisplayRectEx($hWnd)
  328. $aRect[0] = DllStructGetData($tRECT, "Left")
  329. $aRect[1] = DllStructGetData($tRECT, "Top")
  330. $aRect[2] = DllStructGetData($tRECT, "Right")
  331. $aRect[3] = DllStructGetData($tRECT, "Bottom")
  332. Return $aRect
  333. EndFunc ;==>_GUICtrlTab_GetDisplayRect
  334. ; #FUNCTION# ====================================================================================================================
  335. ; Author ........: Paul Campbell (PaulIA)
  336. ; Modified.......:
  337. ; ===============================================================================================================================
  338. Func _GUICtrlTab_GetDisplayRectEx($hWnd)
  339. Local $tRECT = _WinAPI_GetClientRect($hWnd)
  340. Return __GUICtrlTab_AdjustRect($hWnd, $tRECT)
  341. EndFunc ;==>_GUICtrlTab_GetDisplayRectEx
  342. ; #FUNCTION# ====================================================================================================================
  343. ; Author ........: Gary Frost (gafrost)
  344. ; Modified.......:
  345. ; ===============================================================================================================================
  346. Func _GUICtrlTab_GetExtendedStyle($hWnd)
  347. If IsHWnd($hWnd) Then
  348. Return _SendMessage($hWnd, $TCM_GETEXTENDEDSTYLE)
  349. Else
  350. Return GUICtrlSendMsg($hWnd, $TCM_GETEXTENDEDSTYLE, 0, 0)
  351. EndIf
  352. EndFunc ;==>_GUICtrlTab_GetExtendedStyle
  353. ; #FUNCTION# ====================================================================================================================
  354. ; Author ........: Paul Campbell (PaulIA)
  355. ; Modified.......: Gary Frost (gafrost)
  356. ; ===============================================================================================================================
  357. Func _GUICtrlTab_GetImageList($hWnd)
  358. If IsHWnd($hWnd) Then
  359. Return Ptr(_SendMessage($hWnd, $TCM_GETIMAGELIST))
  360. Else
  361. Return Ptr(GUICtrlSendMsg($hWnd, $TCM_GETIMAGELIST, 0, 0))
  362. EndIf
  363. EndFunc ;==>_GUICtrlTab_GetImageList
  364. ; #FUNCTION# ====================================================================================================================
  365. ; Author ........: Paul Campbell (PaulIA)
  366. ; Modified.......: Gary Frost (gafrost)
  367. ; ===============================================================================================================================
  368. Func _GUICtrlTab_GetItem($hWnd, $iIndex)
  369. If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)
  370. Local $bUnicode = _GUICtrlTab_GetUnicodeFormat($hWnd)
  371. Local $iBuffer = 4096
  372. Local $tagTCITEMEx = $tagTCITEM & ";ptr Filler" ; strange the Filler is erased by TCM_GETITEM : MS Bug!!!
  373. Local $tItem = DllStructCreate($tagTCITEMEx)
  374. DllStructSetData($tItem, "Mask", $TCIF_ALLDATA)
  375. DllStructSetData($tItem, "TextMax", $iBuffer)
  376. DllStructSetData($tItem, "StateMask", BitOR($TCIS_HIGHLIGHTED, $TCIS_BUTTONPRESSED))
  377. Local $iItem = DllStructGetSize($tItem)
  378. Local $tBuffer
  379. If $bUnicode Then
  380. $tBuffer = DllStructCreate("wchar Text[" & $iBuffer & "]")
  381. $iBuffer *= 2
  382. Else
  383. $tBuffer = DllStructCreate("char Text[" & $iBuffer & "]")
  384. EndIf
  385. Local $tMemMap
  386. Local $pMemory = _MemInit($hWnd, $iItem + $iBuffer, $tMemMap)
  387. Local $pText = $pMemory + $iItem
  388. DllStructSetData($tItem, "Text", $pText)
  389. _MemWrite($tMemMap, $tItem, $pMemory, $iItem)
  390. Local $iRet
  391. If $bUnicode Then
  392. $iRet = _SendMessage($hWnd, $TCM_GETITEMW, $iIndex, $pMemory)
  393. Else
  394. $iRet = _SendMessage($hWnd, $TCM_GETITEMA, $iIndex, $pMemory)
  395. EndIf
  396. _MemRead($tMemMap, $pMemory, $tItem, $iItem)
  397. _MemRead($tMemMap, $pText, $tBuffer, $iBuffer)
  398. _MemFree($tMemMap)
  399. Local $aItem[4]
  400. $aItem[0] = DllStructGetData($tItem, "State")
  401. $aItem[1] = DllStructGetData($tBuffer, "Text")
  402. $aItem[2] = DllStructGetData($tItem, "Image")
  403. $aItem[3] = DllStructGetData($tItem, "Param")
  404. Return SetError($iRet = 0, 0, $aItem)
  405. EndFunc ;==>_GUICtrlTab_GetItem
  406. ; #FUNCTION# ====================================================================================================================
  407. ; Author ........: Gary Frost (gafrost)
  408. ; Modified.......:
  409. ; ===============================================================================================================================
  410. Func _GUICtrlTab_GetItemCount($hWnd)
  411. If IsHWnd($hWnd) Then
  412. Return _SendMessage($hWnd, $TCM_GETITEMCOUNT)
  413. Else
  414. Return GUICtrlSendMsg($hWnd, $TCM_GETITEMCOUNT, 0, 0)
  415. EndIf
  416. EndFunc ;==>_GUICtrlTab_GetItemCount
  417. ; #FUNCTION# ====================================================================================================================
  418. ; Author ........: Paul Campbell (PaulIA)
  419. ; Modified.......:
  420. ; ===============================================================================================================================
  421. Func _GUICtrlTab_GetItemImage($hWnd, $iIndex)
  422. Local $aItem = _GUICtrlTab_GetItem($hWnd, $iIndex)
  423. Return $aItem[2]
  424. EndFunc ;==>_GUICtrlTab_GetItemImage
  425. ; #FUNCTION# ====================================================================================================================
  426. ; Author ........: Paul Campbell (PaulIA)
  427. ; Modified.......:
  428. ; ===============================================================================================================================
  429. Func _GUICtrlTab_GetItemParam($hWnd, $iIndex)
  430. Local $aItem = _GUICtrlTab_GetItem($hWnd, $iIndex)
  431. Return $aItem[3]
  432. EndFunc ;==>_GUICtrlTab_GetItemParam
  433. ; #FUNCTION# ====================================================================================================================
  434. ; Author ........: Paul Campbell (PaulIA)
  435. ; Modified.......:
  436. ; ===============================================================================================================================
  437. Func _GUICtrlTab_GetItemRect($hWnd, $iIndex)
  438. Local $aRect[4]
  439. Local $tRECT = _GUICtrlTab_GetItemRectEx($hWnd, $iIndex)
  440. $aRect[0] = DllStructGetData($tRECT, "Left")
  441. $aRect[1] = DllStructGetData($tRECT, "Top")
  442. $aRect[2] = DllStructGetData($tRECT, "Right")
  443. $aRect[3] = DllStructGetData($tRECT, "Bottom")
  444. Return $aRect
  445. EndFunc ;==>_GUICtrlTab_GetItemRect
  446. ; #FUNCTION# ====================================================================================================================
  447. ; Author ........: Paul Campbell (PaulIA)
  448. ; Modified.......: Gary Frost (gafrost)
  449. ; ===============================================================================================================================
  450. Func _GUICtrlTab_GetItemRectEx($hWnd, $iIndex)
  451. Local $tRECT = DllStructCreate($tagRECT)
  452. If IsHWnd($hWnd) Then
  453. If _WinAPI_InProcess($hWnd, $__g_hTabLastWnd) Then
  454. _SendMessage($hWnd, $TCM_GETITEMRECT, $iIndex, $tRECT, 0, "wparam", "struct*")
  455. Else
  456. Local $iRect = DllStructGetSize($tRECT)
  457. Local $tMemMap
  458. Local $pMemory = _MemInit($hWnd, $iRect, $tMemMap)
  459. _SendMessage($hWnd, $TCM_GETITEMRECT, $iIndex, $pMemory, 0, "wparam", "ptr")
  460. _MemRead($tMemMap, $pMemory, $tRECT, $iRect)
  461. _MemFree($tMemMap)
  462. EndIf
  463. Else
  464. GUICtrlSendMsg($hWnd, $TCM_GETITEMRECT, $iIndex, DllStructGetPtr($tRECT))
  465. EndIf
  466. Return $tRECT
  467. EndFunc ;==>_GUICtrlTab_GetItemRectEx
  468. ; #FUNCTION# ====================================================================================================================
  469. ; Author ........: Paul Campbell (PaulIA)
  470. ; Modified.......:
  471. ; ===============================================================================================================================
  472. Func _GUICtrlTab_GetItemState($hWnd, $iIndex)
  473. Local $aItem = _GUICtrlTab_GetItem($hWnd, $iIndex)
  474. Return $aItem[0]
  475. EndFunc ;==>_GUICtrlTab_GetItemState
  476. ; #FUNCTION# ====================================================================================================================
  477. ; Author ........: Paul Campbell (PaulIA)
  478. ; Modified.......:
  479. ; ===============================================================================================================================
  480. Func _GUICtrlTab_GetItemText($hWnd, $iIndex)
  481. Local $aItem = _GUICtrlTab_GetItem($hWnd, $iIndex)
  482. Return $aItem[1]
  483. EndFunc ;==>_GUICtrlTab_GetItemText
  484. ; #FUNCTION# ====================================================================================================================
  485. ; Author ........: Gary Frost (gafrost)
  486. ; Modified.......:
  487. ; ===============================================================================================================================
  488. Func _GUICtrlTab_GetRowCount($hWnd)
  489. If IsHWnd($hWnd) Then
  490. Return _SendMessage($hWnd, $TCM_GETROWCOUNT)
  491. Else
  492. Return GUICtrlSendMsg($hWnd, $TCM_GETROWCOUNT, 0, 0)
  493. EndIf
  494. EndFunc ;==>_GUICtrlTab_GetRowCount
  495. ; #FUNCTION# ====================================================================================================================
  496. ; Author ........: Paul Campbell (PaulIA)
  497. ; Modified.......: Gary Frost (gafrost)
  498. ; ===============================================================================================================================
  499. Func _GUICtrlTab_GetToolTips($hWnd)
  500. If IsHWnd($hWnd) Then
  501. Return HWnd(_SendMessage($hWnd, $TCM_GETTOOLTIPS))
  502. Else
  503. Return HWnd(GUICtrlSendMsg($hWnd, $TCM_GETTOOLTIPS, 0, 0))
  504. EndIf
  505. EndFunc ;==>_GUICtrlTab_GetToolTips
  506. ; #FUNCTION# ====================================================================================================================
  507. ; Author ........: Gary Frost (gafrost)
  508. ; Modified.......:
  509. ; ===============================================================================================================================
  510. Func _GUICtrlTab_GetUnicodeFormat($hWnd)
  511. If IsHWnd($hWnd) Then
  512. Return _SendMessage($hWnd, $TCM_GETUNICODEFORMAT) <> 0
  513. Else
  514. Return GUICtrlSendMsg($hWnd, $TCM_GETUNICODEFORMAT, 0, 0) <> 0
  515. EndIf
  516. EndFunc ;==>_GUICtrlTab_GetUnicodeFormat
  517. ; #FUNCTION# ====================================================================================================================
  518. ; Author ........: Gary Frost (gafrost)
  519. ; Modified.......:
  520. ; ===============================================================================================================================
  521. Func _GUICtrlTab_HighlightItem($hWnd, $iIndex, $bHighlight = True)
  522. If IsHWnd($hWnd) Then
  523. Return _SendMessage($hWnd, $TCM_HIGHLIGHTITEM, $iIndex, $bHighlight) <> 0
  524. Else
  525. Return GUICtrlSendMsg($hWnd, $TCM_HIGHLIGHTITEM, $iIndex, $bHighlight) <> 0
  526. EndIf
  527. EndFunc ;==>_GUICtrlTab_HighlightItem
  528. ; #FUNCTION# ====================================================================================================================
  529. ; Author ........: Paul Campbell (PaulIA)
  530. ; Modified.......: Gary Frost (gafrost)
  531. ; ===============================================================================================================================
  532. Func _GUICtrlTab_HitTest($hWnd, $iX, $iY)
  533. Local $aHit[2] = [-1, 1]
  534. Local $tHit = DllStructCreate($tagTCHITTESTINFO)
  535. DllStructSetData($tHit, "X", $iX)
  536. DllStructSetData($tHit, "Y", $iY)
  537. If IsHWnd($hWnd) Then
  538. If _WinAPI_InProcess($hWnd, $__g_hTabLastWnd) Then
  539. $aHit[0] = _SendMessage($hWnd, $TCM_HITTEST, 0, $tHit, 0, "wparam", "struct*")
  540. Else
  541. Local $iHit = DllStructGetSize($tHit)
  542. Local $tMemMap
  543. Local $pMemory = _MemInit($hWnd, $iHit, $tMemMap)
  544. _MemWrite($tMemMap, $tHit)
  545. $aHit[0] = _SendMessage($hWnd, $TCM_HITTEST, 0, $pMemory, 0, "wparam", "ptr")
  546. _MemRead($tMemMap, $pMemory, $tHit, $iHit)
  547. _MemFree($tMemMap)
  548. EndIf
  549. Else
  550. $aHit[0] = GUICtrlSendMsg($hWnd, $TCM_HITTEST, 0, DllStructGetPtr($tHit))
  551. EndIf
  552. $aHit[1] = DllStructGetData($tHit, "Flags")
  553. Return $aHit
  554. EndFunc ;==>_GUICtrlTab_HitTest
  555. ; #FUNCTION# ====================================================================================================================
  556. ; Author ........: Paul Campbell (PaulIA)
  557. ; Modified.......: Gary Frost (gafrost)
  558. ; ===============================================================================================================================
  559. Func _GUICtrlTab_InsertItem($hWnd, $iIndex, $sText, $iImage = -1, $iParam = 0)
  560. Local $bUnicode = _GUICtrlTab_GetUnicodeFormat($hWnd)
  561. Local $iBuffer = StringLen($sText) + 1
  562. Local $tBuffer
  563. If $bUnicode Then
  564. $tBuffer = DllStructCreate("wchar Text[" & $iBuffer & "]")
  565. $iBuffer *= 2
  566. Else
  567. $tBuffer = DllStructCreate("char Text[" & $iBuffer & "]")
  568. EndIf
  569. Local $pBuffer = DllStructGetPtr($tBuffer)
  570. Local $tItem = DllStructCreate($tagTCITEM)
  571. DllStructSetData($tBuffer, "Text", $sText)
  572. DllStructSetData($tItem, "Mask", BitOR($TCIF_TEXT, $TCIF_IMAGE, $TCIF_PARAM))
  573. DllStructSetData($tItem, "TextMax", $iBuffer)
  574. DllStructSetData($tItem, "Image", $iImage)
  575. DllStructSetData($tItem, "Param", $iParam)
  576. Local $iRet
  577. If IsHWnd($hWnd) Then
  578. If _WinAPI_InProcess($hWnd, $__g_hTabLastWnd) Then
  579. DllStructSetData($tItem, "Text", $pBuffer)
  580. $iRet = _SendMessage($hWnd, $TCM_INSERTITEMW, $iIndex, $tItem, 0, "wparam", "struct*")
  581. Else
  582. Local $iItem = DllStructGetSize($tItem)
  583. Local $tMemMap
  584. Local $pMemory = _MemInit($hWnd, $iItem + $iBuffer, $tMemMap)
  585. Local $pText = $pMemory + $iItem
  586. DllStructSetData($tItem, "Text", $pText)
  587. _MemWrite($tMemMap, $tItem, $pMemory, $iItem)
  588. _MemWrite($tMemMap, $tBuffer, $pText, $iBuffer)
  589. If $bUnicode Then
  590. $iRet = _SendMessage($hWnd, $TCM_INSERTITEMW, $iIndex, $pMemory, 0, "wparam", "ptr")
  591. Else
  592. $iRet = _SendMessage($hWnd, $TCM_INSERTITEMA, $iIndex, $pMemory, 0, "wparam", "ptr")
  593. EndIf
  594. _MemFree($tMemMap)
  595. EndIf
  596. Else
  597. Local $pItem = DllStructGetPtr($tItem)
  598. DllStructSetData($tItem, "Text", $pBuffer)
  599. If $bUnicode Then
  600. $iRet = GUICtrlSendMsg($hWnd, $TCM_INSERTITEMW, $iIndex, $pItem)
  601. Else
  602. $iRet = GUICtrlSendMsg($hWnd, $TCM_INSERTITEMA, $iIndex, $pItem)
  603. EndIf
  604. EndIf
  605. Return $iRet
  606. EndFunc ;==>_GUICtrlTab_InsertItem
  607. ; #FUNCTION# ====================================================================================================================
  608. ; Author ........: Paul Campbell (PaulIA)
  609. ; Modified.......: Gary Frost (gafrost)
  610. ; ===============================================================================================================================
  611. Func _GUICtrlTab_RemoveImage($hWnd, $iIndex)
  612. If IsHWnd($hWnd) Then
  613. _SendMessage($hWnd, $TCM_REMOVEIMAGE, $iIndex)
  614. _WinAPI_InvalidateRect($hWnd)
  615. Else
  616. GUICtrlSendMsg($hWnd, $TCM_REMOVEIMAGE, $iIndex, 0)
  617. EndIf
  618. EndFunc ;==>_GUICtrlTab_RemoveImage
  619. ; #FUNCTION# ====================================================================================================================
  620. ; Author ........: Gary Frost (gafrost)
  621. ; Modified.......:
  622. ; ===============================================================================================================================
  623. Func _GUICtrlTab_SetCurFocus($hWnd, $iIndex)
  624. If IsHWnd($hWnd) Then
  625. _SendMessage($hWnd, $TCM_SETCURFOCUS, $iIndex)
  626. Else
  627. GUICtrlSendMsg($hWnd, $TCM_SETCURFOCUS, $iIndex, 0)
  628. EndIf
  629. EndFunc ;==>_GUICtrlTab_SetCurFocus
  630. ; #FUNCTION# ====================================================================================================================
  631. ; Author ........: Gary Frost (gafrost)
  632. ; Modified.......:
  633. ; ===============================================================================================================================
  634. Func _GUICtrlTab_SetCurSel($hWnd, $iIndex)
  635. If IsHWnd($hWnd) Then
  636. Return _SendMessage($hWnd, $TCM_SETCURSEL, $iIndex)
  637. Else
  638. Return GUICtrlSendMsg($hWnd, $TCM_SETCURSEL, $iIndex, 0)
  639. EndIf
  640. EndFunc ;==>_GUICtrlTab_SetCurSel
  641. ; #FUNCTION# ====================================================================================================================
  642. ; Author ........: Paul Campbell (PaulIA)
  643. ; Modified.......: Gary Frost (gafrost)
  644. ; ===============================================================================================================================
  645. Func _GUICtrlTab_SetExtendedStyle($hWnd, $iStyle)
  646. If IsHWnd($hWnd) Then
  647. Return _SendMessage($hWnd, $TCM_SETEXTENDEDSTYLE, 0, $iStyle)
  648. Else
  649. Return GUICtrlSendMsg($hWnd, $TCM_SETEXTENDEDSTYLE, 0, $iStyle)
  650. EndIf
  651. EndFunc ;==>_GUICtrlTab_SetExtendedStyle
  652. ; #FUNCTION# ====================================================================================================================
  653. ; Author ........: Paul Campbell (PaulIA)
  654. ; Modified.......: Gary Frost (gafrost)
  655. ; ===============================================================================================================================
  656. Func _GUICtrlTab_SetImageList($hWnd, $hImage)
  657. If IsHWnd($hWnd) Then
  658. Return _SendMessage($hWnd, $TCM_SETIMAGELIST, 0, $hImage, 0, "wparam", "handle", "handle")
  659. Else
  660. Return Ptr(GUICtrlSendMsg($hWnd, $TCM_SETIMAGELIST, 0, $hImage))
  661. EndIf
  662. EndFunc ;==>_GUICtrlTab_SetImageList
  663. ; #FUNCTION# ====================================================================================================================
  664. ; Author ........: Paul Campbell (PaulIA)
  665. ; Modified.......: Gary Frost (gafrost)
  666. ; ===============================================================================================================================
  667. Func _GUICtrlTab_SetItem($hWnd, $iIndex, $sText = -1, $iState = -1, $iImage = -1, $iParam = -1)
  668. If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)
  669. Local $tItem = DllStructCreate($tagTCITEM)
  670. Local $iBuffer, $tBuffer, $iMask = 0, $iRet
  671. Local $bUnicode = _GUICtrlTab_GetUnicodeFormat($hWnd)
  672. If IsString($sText) Then
  673. $iBuffer = StringLen($sText) + 1
  674. If $bUnicode Then
  675. $tBuffer = DllStructCreate("wchar Text[" & $iBuffer & "]")
  676. $iBuffer *= 2
  677. Else
  678. $tBuffer = DllStructCreate("char Text[" & $iBuffer & "]")
  679. EndIf
  680. DllStructSetData($tBuffer, "Text", $sText)
  681. DllStructSetData($tItem, "Text", DllStructGetPtr($tBuffer))
  682. $iMask = $TCIF_TEXT
  683. EndIf
  684. If $iState <> -1 Then
  685. DllStructSetData($tItem, "State", $iState)
  686. DllStructSetData($tItem, "StateMask", $iState)
  687. $iMask = BitOR($iMask, $TCIF_STATE)
  688. EndIf
  689. If $iImage <> -1 Then
  690. DllStructSetData($tItem, "Image", $iImage)
  691. $iMask = BitOR($iMask, $TCIF_IMAGE)
  692. EndIf
  693. If $iParam <> -1 Then
  694. DllStructSetData($tItem, "Param", $iParam)
  695. $iMask = BitOR($iMask, $TCIF_PARAM)
  696. EndIf
  697. DllStructSetData($tItem, "Mask", $iMask)
  698. Local $iItem = DllStructGetSize($tItem)
  699. Local $tMemMap
  700. Local $pMemory = _MemInit($hWnd, $iItem + 8192, $tMemMap)
  701. Local $pText = $pMemory + 4096
  702. DllStructSetData($tItem, "Text", $pText)
  703. _MemWrite($tMemMap, $tItem, $pMemory, $iItem)
  704. If IsString($sText) Then _MemWrite($tMemMap, $tBuffer, $pText, $iBuffer)
  705. If $bUnicode Then
  706. $iRet = _SendMessage($hWnd, $TCM_SETITEMW, $iIndex, $pMemory) <> 0
  707. Else
  708. $iRet = _SendMessage($hWnd, $TCM_SETITEMA, $iIndex, $pMemory) <> 0
  709. EndIf
  710. _MemFree($tMemMap)
  711. Return $iRet
  712. EndFunc ;==>_GUICtrlTab_SetItem
  713. ; #FUNCTION# ====================================================================================================================
  714. ; Author ........: Paul Campbell (PaulIA)
  715. ; Modified.......:
  716. ; ===============================================================================================================================
  717. Func _GUICtrlTab_SetItemImage($hWnd, $iIndex, $iImage)
  718. Return _GUICtrlTab_SetItem($hWnd, $iIndex, -1, -1, $iImage)
  719. EndFunc ;==>_GUICtrlTab_SetItemImage
  720. ; #FUNCTION# ====================================================================================================================
  721. ; Author ........: Paul Campbell (PaulIA)
  722. ; Modified.......:
  723. ; ===============================================================================================================================
  724. Func _GUICtrlTab_SetItemParam($hWnd, $iIndex, $iParam)
  725. Return _GUICtrlTab_SetItem($hWnd, $iIndex, -1, -1, -1, $iParam)
  726. EndFunc ;==>_GUICtrlTab_SetItemParam
  727. ; #FUNCTION# ====================================================================================================================
  728. ; Author ........: Paul Campbell (PaulIA)
  729. ; Modified.......: Gary Frost (gafrost)
  730. ; ===============================================================================================================================
  731. Func _GUICtrlTab_SetItemSize($hWnd, $iWidth, $iHeight)
  732. If IsHWnd($hWnd) Then
  733. Return _SendMessage($hWnd, $TCM_SETITEMSIZE, 0, _WinAPI_MakeLong($iWidth, $iHeight))
  734. Else
  735. Return GUICtrlSendMsg($hWnd, $TCM_SETITEMSIZE, 0, _WinAPI_MakeLong($iWidth, $iHeight))
  736. EndIf
  737. EndFunc ;==>_GUICtrlTab_SetItemSize
  738. ; #FUNCTION# ====================================================================================================================
  739. ; Author ........: Paul Campbell (PaulIA)
  740. ; Modified.......:
  741. ; ===============================================================================================================================
  742. Func _GUICtrlTab_SetItemState($hWnd, $iIndex, $iState)
  743. Return _GUICtrlTab_SetItem($hWnd, $iIndex, -1, $iState)
  744. EndFunc ;==>_GUICtrlTab_SetItemState
  745. ; #FUNCTION# ====================================================================================================================
  746. ; Author ........: Paul Campbell (PaulIA)
  747. ; Modified.......:
  748. ; ===============================================================================================================================
  749. Func _GUICtrlTab_SetItemText($hWnd, $iIndex, $sText)
  750. Return _GUICtrlTab_SetItem($hWnd, $iIndex, $sText)
  751. EndFunc ;==>_GUICtrlTab_SetItemText
  752. ; #FUNCTION# ====================================================================================================================
  753. ; Author ........: Gary Frost (gafrost)
  754. ; Modified.......:
  755. ; ===============================================================================================================================
  756. Func _GUICtrlTab_SetMinTabWidth($hWnd, $iMinWidth)
  757. If IsHWnd($hWnd) Then
  758. Return _SendMessage($hWnd, $TCM_SETMINTABWIDTH, 0, $iMinWidth)
  759. Else
  760. Return GUICtrlSendMsg($hWnd, $TCM_SETMINTABWIDTH, 0, $iMinWidth)
  761. EndIf
  762. EndFunc ;==>_GUICtrlTab_SetMinTabWidth
  763. ; #FUNCTION# ====================================================================================================================
  764. ; Author ........: Paul Campbell (PaulIA)
  765. ; Modified.......: Gary Frost (gafrost)
  766. ; ===============================================================================================================================
  767. Func _GUICtrlTab_SetPadding($hWnd, $iHorz, $iVert)
  768. If IsHWnd($hWnd) Then
  769. _SendMessage($hWnd, $TCM_SETPADDING, 0, _WinAPI_MakeLong($iHorz, $iVert))
  770. Else
  771. GUICtrlSendMsg($hWnd, $TCM_SETPADDING, 0, _WinAPI_MakeLong($iHorz, $iVert))
  772. EndIf
  773. EndFunc ;==>_GUICtrlTab_SetPadding
  774. ; #FUNCTION# ====================================================================================================================
  775. ; Author ........: Paul Campbell (PaulIA)
  776. ; Modified.......: Gary Frost (gafrost)
  777. ; ===============================================================================================================================
  778. Func _GUICtrlTab_SetToolTips($hWnd, $hToolTip)
  779. If IsHWnd($hWnd) Then
  780. _SendMessage($hWnd, $TCM_SETTOOLTIPS, $hToolTip, 0, 0, "hwnd")
  781. Else
  782. GUICtrlSendMsg($hWnd, $TCM_SETTOOLTIPS, $hToolTip, 0)
  783. EndIf
  784. EndFunc ;==>_GUICtrlTab_SetToolTips
  785. ; #FUNCTION# ====================================================================================================================
  786. ; Author ........: Gary Frost (gafrost)
  787. ; Modified.......:
  788. ; ===============================================================================================================================
  789. Func _GUICtrlTab_SetUnicodeFormat($hWnd, $bUnicode)
  790. If IsHWnd($hWnd) Then
  791. Return _SendMessage($hWnd, $TCM_SETUNICODEFORMAT, $bUnicode) <> 0
  792. Else
  793. Return GUICtrlSendMsg($hWnd, $TCM_SETUNICODEFORMAT, $bUnicode, 0) <> 0
  794. EndIf
  795. EndFunc ;==>_GUICtrlTab_SetUnicodeFormat