GuiComboBoxEx.au3 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909
  1. #include-once
  2. #include "DirConstants.au3"
  3. #include "GuiComboBox.au3"
  4. #include "Memory.au3"
  5. #include "UDFGlobalID.au3"
  6. #include "WinAPIGdi.au3"
  7. #include "WinAPISysInternals.au3"
  8. ; #INDEX# =======================================================================================================================
  9. ; Title .........: ComboBoxEx
  10. ; AutoIt Version : 3.3.14.5
  11. ; Language ......: English
  12. ; Description ...: Functions that assist with ComboBoxEx control management.
  13. ; ComboBoxEx Controls are an extension of the combo box control that provides native support for item images.
  14. ; To make item images easily accessible, the control provides image list support. By using this control, you
  15. ; can provide the functionality of a combo box without having to manually draw item graphics.
  16. ; ===============================================================================================================================
  17. ; #VARIABLES# ===================================================================================================================
  18. Global $__g_hCBExLastWnd
  19. ; ===============================================================================================================================
  20. ; #CONSTANTS# ===================================================================================================================
  21. Global Const $__COMBOBOXEXCONSTANT_ClassName = "ComboBoxEx32"
  22. Global Const $__COMBOBOXEXCONSTANT_WM_SIZE = 0x05
  23. ; ===============================================================================================================================
  24. ; #NO_DOC_FUNCTION# =============================================================================================================
  25. ; Not working/documented/implemented at this time
  26. ;
  27. ; _GUICtrlComboBoxEx_HasEditChanged
  28. ;
  29. ; Things to figure out for ComboBoxEx
  30. ; FindString
  31. ; AutoComplete
  32. ; ===============================================================================================================================
  33. ; #CURRENT# =====================================================================================================================
  34. ; _GUICtrlComboBoxEx_AddDir
  35. ; _GUICtrlComboBoxEx_AddString
  36. ; _GUICtrlComboBoxEx_BeginUpdate
  37. ; _GUICtrlComboBoxEx_Create
  38. ; _GUICtrlComboBoxEx_CreateSolidBitMap
  39. ; _GUICtrlComboBoxEx_DeleteString
  40. ; _GUICtrlComboBoxEx_Destroy
  41. ; _GUICtrlComboBoxEx_EndUpdate
  42. ; _GUICtrlComboBoxEx_FindStringExact
  43. ; _GUICtrlComboBoxEx_GetComboBoxInfo
  44. ; _GUICtrlComboBoxEx_GetComboControl
  45. ; _GUICtrlComboBoxEx_GetCount
  46. ; _GUICtrlComboBoxEx_GetCurSel
  47. ; _GUICtrlComboBoxEx_GetDroppedControlRect
  48. ; _GUICtrlComboBoxEx_GetDroppedControlRectEx
  49. ; _GUICtrlComboBoxEx_GetDroppedState
  50. ; _GUICtrlComboBoxEx_GetDroppedWidth
  51. ; _GUICtrlComboBoxEx_GetEditControl
  52. ; _GUICtrlComboBoxEx_GetEditSel
  53. ; _GUICtrlComboBoxEx_GetEditText
  54. ; _GUICtrlComboBoxEx_GetExtendedStyle
  55. ; _GUICtrlComboBoxEx_GetExtendedUI
  56. ; _GUICtrlComboBoxEx_GetImageList
  57. ; _GUICtrlComboBoxEx_GetItem
  58. ; _GUICtrlComboBoxEx_GetItemEx
  59. ; _GUICtrlComboBoxEx_GetItemHeight
  60. ; _GUICtrlComboBoxEx_GetItemImage
  61. ; _GUICtrlComboBoxEx_GetItemIndent
  62. ; _GUICtrlComboBoxEx_GetItemOverlayImage
  63. ; _GUICtrlComboBoxEx_GetItemParam
  64. ; _GUICtrlComboBoxEx_GetItemSelectedImage
  65. ; _GUICtrlComboBoxEx_GetItemText
  66. ; _GUICtrlComboBoxEx_GetItemTextLen
  67. ; _GUICtrlComboBoxEx_GetList
  68. ; _GUICtrlComboBoxEx_GetListArray
  69. ; _GUICtrlComboBoxEx_GetLocale
  70. ; _GUICtrlComboBoxEx_GetLocaleCountry
  71. ; _GUICtrlComboBoxEx_GetLocaleLang
  72. ; _GUICtrlComboBoxEx_GetLocalePrimLang
  73. ; _GUICtrlComboBoxEx_GetLocaleSubLang
  74. ; _GUICtrlComboBoxEx_GetMinVisible
  75. ; _GUICtrlComboBoxEx_GetTopIndex
  76. ; _GUICtrlComboBoxEx_GetUnicode
  77. ; _GUICtrlComboBoxEx_InitStorage
  78. ; _GUICtrlComboBoxEx_InsertString
  79. ; _GUICtrlComboBoxEx_LimitText
  80. ; _GUICtrlComboBoxEx_ReplaceEditSel
  81. ; _GUICtrlComboBoxEx_ResetContent
  82. ; _GUICtrlComboBoxEx_SetCurSel
  83. ; _GUICtrlComboBoxEx_SetDroppedWidth
  84. ; _GUICtrlComboBoxEx_SetEditSel
  85. ; _GUICtrlComboBoxEx_SetEditText
  86. ; _GUICtrlComboBoxEx_SetExtendedStyle
  87. ; _GUICtrlComboBoxEx_SetExtendedUI
  88. ; _GUICtrlComboBoxEx_SetImageList
  89. ; _GUICtrlComboBoxEx_SetItem
  90. ; _GUICtrlComboBoxEx_SetItemEx
  91. ; _GUICtrlComboBoxEx_SetItemHeight
  92. ; _GUICtrlComboBoxEx_SetItemImage
  93. ; _GUICtrlComboBoxEx_SetItemIndent
  94. ; _GUICtrlComboBoxEx_SetItemOverlayImage
  95. ; _GUICtrlComboBoxEx_SetItemParam
  96. ; _GUICtrlComboBoxEx_SetItemSelectedImage
  97. ; _GUICtrlComboBoxEx_SetMinVisible
  98. ; _GUICtrlComboBoxEx_SetTopIndex
  99. ; _GUICtrlComboBoxEx_SetUnicode
  100. ; _GUICtrlComboBoxEx_ShowDropDown
  101. ; ===============================================================================================================================
  102. ; #FUNCTION# ====================================================================================================================
  103. ; Author ........: Gary Frost (gafrost)
  104. ; Modified.......:
  105. ; ===============================================================================================================================
  106. Func _GUICtrlComboBoxEx_AddDir($hWnd, $sFilePath, $iAttributes = 0, $bBrackets = True)
  107. Local $hGui = GUICreate("combo gui")
  108. Local $idCombo = GUICtrlCreateCombo("", 240, 40, 120, 120)
  109. Local $iRet = GUICtrlSendMsg($idCombo, $CB_DIR, $iAttributes, $sFilePath)
  110. If $iRet = -1 Then
  111. GUIDelete($hGui)
  112. Return SetError(-1, -1, -1)
  113. EndIf
  114. Local $sText
  115. For $i = 0 To _GUICtrlComboBox_GetCount($idCombo) - 1
  116. _GUICtrlComboBox_GetLBText($idCombo, $i, $sText)
  117. If BitAND($iAttributes, $DDL_DRIVES) = $DDL_DRIVES And _
  118. Not $bBrackets Then $sText = StringReplace(StringReplace(StringReplace($sText, "[", ""), "]", ":"), "-", "")
  119. _GUICtrlComboBoxEx_InsertString($hWnd, $sText)
  120. Next
  121. GUIDelete($hGui)
  122. Return $iRet
  123. EndFunc ;==>_GUICtrlComboBoxEx_AddDir
  124. ; #FUNCTION# ====================================================================================================================
  125. ; Author ........: Gary Frost (gafrost)
  126. ; Modified.......:
  127. ; ===============================================================================================================================
  128. Func _GUICtrlComboBoxEx_AddString($hWnd, $sText, $iImage = -1, $iSelectedImage = -1, $iOverlayImage = -1, $iIndent = -1, $iParam = -1)
  129. Return _GUICtrlComboBoxEx_InsertString($hWnd, $sText, -1, $iImage, $iSelectedImage, $iOverlayImage, $iIndent, $iParam)
  130. EndFunc ;==>_GUICtrlComboBoxEx_AddString
  131. ; #FUNCTION# ====================================================================================================================
  132. ; Author ........: Gary Frost (gafrost)
  133. ; Modified.......:
  134. ; ===============================================================================================================================
  135. Func _GUICtrlComboBoxEx_BeginUpdate($hWnd)
  136. Return _SendMessage($hWnd, $__COMBOBOXCONSTANT_WM_SETREDRAW, False) = 0
  137. EndFunc ;==>_GUICtrlComboBoxEx_BeginUpdate
  138. ; #FUNCTION# ====================================================================================================================
  139. ; Author ........: Gary Frost (gafrost)
  140. ; Modified.......:
  141. ; ===============================================================================================================================
  142. Func _GUICtrlComboBoxEx_Create($hWnd, $sText, $iX, $iY, $iWidth = 100, $iHeight = 200, $iStyle = 0x00200002, $iExStyle = 0x00000000)
  143. If Not IsHWnd($hWnd) Then Return SetError(1, 0, 0) ; Invalid Window handle for _GUICtrlComboBoxEx_Create 1st parameter
  144. If Not IsString($sText) Then Return SetError(2, 0, 0) ; 2nd parameter not a string for _GUICtrlComboBoxEx_Create
  145. Local $sDelimiter = Opt("GUIDataSeparatorChar")
  146. If $iWidth = -1 Then $iWidth = 100
  147. If $iHeight = -1 Then $iHeight = 200
  148. Local Const $WS_VSCROLL = 0x00200000
  149. If $iStyle = -1 Then $iStyle = BitOR($WS_VSCROLL, $CBS_DROPDOWN)
  150. If $iExStyle = -1 Then $iExStyle = 0x00000000
  151. $iStyle = BitOR($iStyle, $__UDFGUICONSTANT_WS_CHILD, $__UDFGUICONSTANT_WS_TABSTOP, $__UDFGUICONSTANT_WS_VISIBLE)
  152. Local $nCtrlID = __UDF_GetNextGlobalID($hWnd)
  153. If @error Then Return SetError(@error, @extended, 0)
  154. Local $hCombo = _WinAPI_CreateWindowEx($iExStyle, $__COMBOBOXEXCONSTANT_ClassName, "", $iStyle, $iX, $iY, $iWidth, $iHeight, $hWnd, $nCtrlID)
  155. _WinAPI_SetFont($hCombo, _WinAPI_GetStockObject($__COMBOBOXCONSTANT_DEFAULT_GUI_FONT))
  156. If StringLen($sText) Then
  157. Local $aText = StringSplit($sText, $sDelimiter)
  158. For $x = 1 To $aText[0]
  159. _GUICtrlComboBoxEx_AddString($hCombo, $aText[$x])
  160. Next
  161. EndIf
  162. Return $hCombo
  163. EndFunc ;==>_GUICtrlComboBoxEx_Create
  164. ; #FUNCTION# ====================================================================================================================
  165. ; Author ........: Gary Frost (gafrost)
  166. ; Modified.......:
  167. ; ===============================================================================================================================
  168. Func _GUICtrlComboBoxEx_CreateSolidBitMap($hWnd, $iColor, $iWidth, $iHeight)
  169. Return _WinAPI_CreateSolidBitmap($hWnd, $iColor, $iWidth, $iHeight)
  170. EndFunc ;==>_GUICtrlComboBoxEx_CreateSolidBitMap
  171. ; #FUNCTION# ====================================================================================================================
  172. ; Author ........: Gary Frost (gafrost)
  173. ; Modified.......:
  174. ; ===============================================================================================================================
  175. Func _GUICtrlComboBoxEx_DeleteString($hWnd, $iIndex)
  176. Return _SendMessage($hWnd, $CBEM_DELETEITEM, $iIndex)
  177. EndFunc ;==>_GUICtrlComboBoxEx_DeleteString
  178. ; #FUNCTION# ====================================================================================================================
  179. ; Author ........: Gary Frost (gafrost)
  180. ; Modified.......:
  181. ; ===============================================================================================================================
  182. Func _GUICtrlComboBoxEx_Destroy(ByRef $hWnd)
  183. If Not _WinAPI_IsClassName($hWnd, $__COMBOBOXEXCONSTANT_ClassName) Then Return SetError(2, 2, False)
  184. Local $iDestroyed = 0
  185. If _WinAPI_InProcess($hWnd, $__g_hCBExLastWnd) Then
  186. Local $nCtrlID = _WinAPI_GetDlgCtrlID($hWnd)
  187. Local $hParent = _WinAPI_GetParent($hWnd)
  188. $iDestroyed = _WinAPI_DestroyWindow($hWnd)
  189. Local $iRet = __UDF_FreeGlobalID($hParent, $nCtrlID)
  190. If Not $iRet Then
  191. ; can check for errors here if needed, for debug
  192. EndIf
  193. Else
  194. ; Not Allowed to Destroy Other Applications Control(s)
  195. Return SetError(1, 1, False)
  196. EndIf
  197. If $iDestroyed Then $hWnd = 0
  198. Return $iDestroyed <> 0
  199. EndFunc ;==>_GUICtrlComboBoxEx_Destroy
  200. ; #FUNCTION# ====================================================================================================================
  201. ; Author ........: Gary Frost (gafrost)
  202. ; Modified.......:
  203. ; ===============================================================================================================================
  204. Func _GUICtrlComboBoxEx_EndUpdate($hWnd)
  205. Return _SendMessage($hWnd, $__COMBOBOXCONSTANT_WM_SETREDRAW, True) = 0
  206. EndFunc ;==>_GUICtrlComboBoxEx_EndUpdate
  207. ; #FUNCTION# ====================================================================================================================
  208. ; Author ........: Gary Frost (gafrost)
  209. ; Modified.......:
  210. ; ===============================================================================================================================
  211. Func _GUICtrlComboBoxEx_FindStringExact($hWnd, $sText, $iIndex = -1)
  212. Return _SendMessage($hWnd, $CB_FINDSTRINGEXACT, $iIndex, $sText, 0, "wparam", "wstr")
  213. EndFunc ;==>_GUICtrlComboBoxEx_FindStringExact
  214. ; #FUNCTION# ====================================================================================================================
  215. ; Author ........: Gary Frost (gafrost)
  216. ; Modified.......:
  217. ; ===============================================================================================================================
  218. Func _GUICtrlComboBoxEx_GetComboBoxInfo($hWnd, ByRef $tInfo)
  219. Local $hCombo = _GUICtrlComboBoxEx_GetComboControl($hWnd)
  220. Return _GUICtrlComboBox_GetComboBoxInfo($hCombo, $tInfo)
  221. EndFunc ;==>_GUICtrlComboBoxEx_GetComboBoxInfo
  222. ; #FUNCTION# ====================================================================================================================
  223. ; Author ........: Gary Frost (gafrost)
  224. ; Modified.......:
  225. ; ===============================================================================================================================
  226. Func _GUICtrlComboBoxEx_GetComboControl($hWnd)
  227. Return HWnd(_SendMessage($hWnd, $CBEM_GETCOMBOCONTROL))
  228. EndFunc ;==>_GUICtrlComboBoxEx_GetComboControl
  229. ; #FUNCTION# ====================================================================================================================
  230. ; Author ........: Gary Frost (gafrost)
  231. ; Modified.......:
  232. ; ===============================================================================================================================
  233. Func _GUICtrlComboBoxEx_GetCount($hWnd)
  234. Return _SendMessage($hWnd, $CB_GETCOUNT)
  235. EndFunc ;==>_GUICtrlComboBoxEx_GetCount
  236. ; #FUNCTION# ====================================================================================================================
  237. ; Author ........: Gary Frost (gafrost)
  238. ; Modified.......:
  239. ; ===============================================================================================================================
  240. Func _GUICtrlComboBoxEx_GetCurSel($hWnd)
  241. Return _SendMessage($hWnd, $CB_GETCURSEL)
  242. EndFunc ;==>_GUICtrlComboBoxEx_GetCurSel
  243. ; #FUNCTION# ====================================================================================================================
  244. ; Author ........: Gary Frost (gafrost)
  245. ; Modified.......:
  246. ; ===============================================================================================================================
  247. Func _GUICtrlComboBoxEx_GetDroppedControlRect($hWnd)
  248. Local $tRECT = _GUICtrlComboBox_GetDroppedControlRectEx($hWnd)
  249. Local $aRect[4]
  250. $aRect[0] = DllStructGetData($tRECT, "Left")
  251. $aRect[1] = DllStructGetData($tRECT, "Top")
  252. $aRect[2] = DllStructGetData($tRECT, "Right")
  253. $aRect[3] = DllStructGetData($tRECT, "Bottom")
  254. Return $aRect
  255. EndFunc ;==>_GUICtrlComboBoxEx_GetDroppedControlRect
  256. ; #FUNCTION# ====================================================================================================================
  257. ; Author ........: Gary Frost (gafrost)
  258. ; Modified.......:
  259. ; ===============================================================================================================================
  260. Func _GUICtrlComboBoxEx_GetDroppedControlRectEx($hWnd)
  261. Local $tRECT = DllStructCreate($tagRECT)
  262. _SendMessage($hWnd, $CB_GETDROPPEDCONTROLRECT, 0, $tRECT, 0, "wparam", "struct*")
  263. Return $tRECT
  264. EndFunc ;==>_GUICtrlComboBoxEx_GetDroppedControlRectEx
  265. ; #FUNCTION# ====================================================================================================================
  266. ; Author ........: Gary Frost (gafro_GUICtrlComboBox_GetDroppedState
  267. ; Modified.......:
  268. ; ===============================================================================================================================
  269. Func _GUICtrlComboBoxEx_GetDroppedState($hWnd)
  270. Return _SendMessage($hWnd, $CB_GETDROPPEDSTATE) <> 0
  271. EndFunc ;==>_GUICtrlComboBoxEx_GetDroppedState
  272. ; #FUNCTION# ====================================================================================================================
  273. ; Author ........: Gary Frost (gafrost)
  274. ; Modified.......:
  275. ; ===============================================================================================================================
  276. Func _GUICtrlComboBoxEx_GetDroppedWidth($hWnd)
  277. Local $hCombo = _GUICtrlComboBoxEx_GetComboControl($hWnd)
  278. Return _GUICtrlComboBox_GetDroppedWidth($hCombo)
  279. EndFunc ;==>_GUICtrlComboBoxEx_GetDroppedWidth
  280. ; #FUNCTION# ====================================================================================================================
  281. ; Author ........: Gary Frost (gafrost)
  282. ; Modified.......:
  283. ; ===============================================================================================================================
  284. Func _GUICtrlComboBoxEx_GetEditControl($hWnd)
  285. Return HWnd(_SendMessage($hWnd, $CBEM_GETEDITCONTROL))
  286. EndFunc ;==>_GUICtrlComboBoxEx_GetEditControl
  287. ; #FUNCTION# ====================================================================================================================
  288. ; Author ........: Gary Frost (gafrost)
  289. ; Modified.......:
  290. ; ===============================================================================================================================
  291. Func _GUICtrlComboBoxEx_GetEditSel($hWnd)
  292. Local $hCombo = _GUICtrlComboBoxEx_GetComboControl($hWnd)
  293. Local $aResult = _GUICtrlComboBox_GetEditSel($hCombo)
  294. Return SetError(@error, @extended, $aResult)
  295. EndFunc ;==>_GUICtrlComboBoxEx_GetEditSel
  296. ; #FUNCTION# ====================================================================================================================
  297. ; Author ........: Gary Frost (gafrost)
  298. ; Modified.......:
  299. ; ===============================================================================================================================
  300. Func _GUICtrlComboBoxEx_GetEditText($hWnd)
  301. Local $hComboBox = _GUICtrlComboBoxEx_GetComboControl($hWnd)
  302. Return _GUICtrlComboBox_GetEditText($hComboBox)
  303. EndFunc ;==>_GUICtrlComboBoxEx_GetEditText
  304. ; #FUNCTION# ====================================================================================================================
  305. ; Author ........: Gary Frost (gafrost)
  306. ; Modified.......:
  307. ; ===============================================================================================================================
  308. Func _GUICtrlComboBoxEx_GetExtendedStyle($hWnd)
  309. Return _SendMessage($hWnd, $CBEM_GETEXTENDEDSTYLE)
  310. EndFunc ;==>_GUICtrlComboBoxEx_GetExtendedStyle
  311. ; #FUNCTION# ====================================================================================================================
  312. ; Author ........: Gary Frost (gafrost)
  313. ; Modified.......:
  314. ; ===============================================================================================================================
  315. Func _GUICtrlComboBoxEx_GetExtendedUI($hWnd)
  316. Return _GUICtrlComboBox_GetExtendedUI($hWnd)
  317. EndFunc ;==>_GUICtrlComboBoxEx_GetExtendedUI
  318. ; #FUNCTION# ====================================================================================================================
  319. ; Author ........: Gary Frost (gafrost)
  320. ; Modified.......:
  321. ; ===============================================================================================================================
  322. Func _GUICtrlComboBoxEx_GetImageList($hWnd)
  323. Return Ptr(_SendMessage($hWnd, $CBEM_GETIMAGELIST))
  324. EndFunc ;==>_GUICtrlComboBoxEx_GetImageList
  325. ; #FUNCTION# ====================================================================================================================
  326. ; Author ........: Gary Frost (gafrost)
  327. ; Modified.......:
  328. ; ===============================================================================================================================
  329. Func _GUICtrlComboBoxEx_GetItem($hWnd, $iIndex)
  330. Local $aItem[7], $sText
  331. Local $tItem = DllStructCreate($tagCOMBOBOXEXITEM)
  332. DllStructSetData($tItem, "Mask", BitOR($CBEIF_IMAGE, $CBEIF_INDENT, $CBEIF_LPARAM, $CBEIF_SELECTEDIMAGE, $CBEIF_OVERLAY))
  333. DllStructSetData($tItem, "Item", $iIndex)
  334. _GUICtrlComboBoxEx_GetItemEx($hWnd, $tItem)
  335. Local $iLen = _GUICtrlComboBoxEx_GetItemText($hWnd, $iIndex, $sText)
  336. $aItem[0] = $sText
  337. $aItem[1] = $iLen
  338. $aItem[2] = DllStructGetData($tItem, "Indent")
  339. $aItem[3] = DllStructGetData($tItem, "Image")
  340. $aItem[4] = DllStructGetData($tItem, "SelectedImage")
  341. $aItem[5] = DllStructGetData($tItem, "OverlayImage")
  342. $aItem[6] = DllStructGetData($tItem, "Param")
  343. Return $aItem
  344. EndFunc ;==>_GUICtrlComboBoxEx_GetItem
  345. ; #FUNCTION# ====================================================================================================================
  346. ; Author ........: Gary Frost (gafrost)
  347. ; Modified.......:
  348. ; ===============================================================================================================================
  349. Func _GUICtrlComboBoxEx_GetItemEx($hWnd, ByRef $tItem)
  350. Local $bUnicode = _GUICtrlComboBoxEx_GetUnicode($hWnd)
  351. Local $iRet
  352. If _WinAPI_InProcess($hWnd, $__g_hCBExLastWnd) Then
  353. $iRet = _SendMessage($hWnd, $CBEM_GETITEMW, 0, $tItem, 0, "wparam", "struct*")
  354. Else
  355. Local $iItem = DllStructGetSize($tItem)
  356. Local $tMemMap
  357. Local $pMemory = _MemInit($hWnd, $iItem, $tMemMap)
  358. _MemWrite($tMemMap, $tItem)
  359. If $bUnicode Then
  360. $iRet = _SendMessage($hWnd, $CBEM_GETITEMW, 0, $pMemory, 0, "wparam", "ptr")
  361. Else
  362. $iRet = _SendMessage($hWnd, $CBEM_GETITEMA, 0, $pMemory, 0, "wparam", "ptr")
  363. EndIf
  364. _MemRead($tMemMap, $pMemory, $tItem, $iItem)
  365. _MemFree($tMemMap)
  366. EndIf
  367. Return $iRet <> 0
  368. EndFunc ;==>_GUICtrlComboBoxEx_GetItemEx
  369. ; #FUNCTION# ====================================================================================================================
  370. ; Author ........: Gary Frost (gafrost)
  371. ; Modified.......:
  372. ; ===============================================================================================================================
  373. Func _GUICtrlComboBoxEx_GetItemHeight($hWnd, $iComponent = -1)
  374. Return _GUICtrlComboBox_GetItemHeight($hWnd, $iComponent)
  375. EndFunc ;==>_GUICtrlComboBoxEx_GetItemHeight
  376. ; #FUNCTION# ====================================================================================================================
  377. ; Author ........: Gary Frost (gafrost)
  378. ; Modified.......:
  379. ; ===============================================================================================================================
  380. Func _GUICtrlComboBoxEx_GetItemImage($hWnd, $iIndex)
  381. Local $tItem = DllStructCreate($tagCOMBOBOXEXITEM)
  382. DllStructSetData($tItem, "Mask", $CBEIF_IMAGE)
  383. DllStructSetData($tItem, "Item", $iIndex)
  384. _GUICtrlComboBoxEx_GetItemEx($hWnd, $tItem)
  385. Return DllStructGetData($tItem, "Image")
  386. EndFunc ;==>_GUICtrlComboBoxEx_GetItemImage
  387. ; #FUNCTION# ====================================================================================================================
  388. ; Author ........: Gary Frost (gafrost)
  389. ; Modified.......:
  390. ; ===============================================================================================================================
  391. Func _GUICtrlComboBoxEx_GetItemIndent($hWnd, $iIndex)
  392. Local $tItem = DllStructCreate($tagCOMBOBOXEXITEM)
  393. DllStructSetData($tItem, "Mask", $CBEIF_INDENT)
  394. DllStructSetData($tItem, "Item", $iIndex)
  395. _GUICtrlComboBoxEx_GetItemEx($hWnd, $tItem)
  396. Return DllStructGetData($tItem, "Indent")
  397. EndFunc ;==>_GUICtrlComboBoxEx_GetItemIndent
  398. ; #FUNCTION# ====================================================================================================================
  399. ; Author ........: Gary Frost (gafrost)
  400. ; Modified.......:
  401. ; ===============================================================================================================================
  402. Func _GUICtrlComboBoxEx_GetItemOverlayImage($hWnd, $iIndex)
  403. Local $tItem = DllStructCreate($tagCOMBOBOXEXITEM)
  404. DllStructSetData($tItem, "Mask", $CBEIF_OVERLAY)
  405. DllStructSetData($tItem, "Item", $iIndex)
  406. _GUICtrlComboBoxEx_GetItemEx($hWnd, $tItem)
  407. Return DllStructGetData($tItem, "OverlayImage")
  408. EndFunc ;==>_GUICtrlComboBoxEx_GetItemOverlayImage
  409. ; #FUNCTION# ====================================================================================================================
  410. ; Author ........: Gary Frost (gafrost)
  411. ; Modified.......:
  412. ; ===============================================================================================================================
  413. Func _GUICtrlComboBoxEx_GetItemParam($hWnd, $iIndex)
  414. Local $tItem = DllStructCreate($tagCOMBOBOXEXITEM)
  415. DllStructSetData($tItem, "Mask", $CBEIF_LPARAM)
  416. DllStructSetData($tItem, "Item", $iIndex)
  417. _GUICtrlComboBoxEx_GetItemEx($hWnd, $tItem)
  418. Return DllStructGetData($tItem, "Param")
  419. EndFunc ;==>_GUICtrlComboBoxEx_GetItemParam
  420. ; #FUNCTION# ====================================================================================================================
  421. ; Author ........: Gary Frost (gafrost)
  422. ; Modified.......:
  423. ; ===============================================================================================================================
  424. Func _GUICtrlComboBoxEx_GetItemSelectedImage($hWnd, $iIndex)
  425. Local $tItem = DllStructCreate($tagCOMBOBOXEXITEM)
  426. DllStructSetData($tItem, "Mask", $CBEIF_SELECTEDIMAGE)
  427. DllStructSetData($tItem, "Item", $iIndex)
  428. _GUICtrlComboBoxEx_GetItemEx($hWnd, $tItem)
  429. Return DllStructGetData($tItem, "SelectedImage")
  430. EndFunc ;==>_GUICtrlComboBoxEx_GetItemSelectedImage
  431. ; #FUNCTION# ====================================================================================================================
  432. ; Author ........: Gary Frost (gafrost)
  433. ; Modified.......:
  434. ; ===============================================================================================================================
  435. Func _GUICtrlComboBoxEx_GetItemText($hWnd, $iIndex, ByRef $sText)
  436. Return _GUICtrlComboBox_GetLBText($hWnd, $iIndex, $sText)
  437. EndFunc ;==>_GUICtrlComboBoxEx_GetItemText
  438. ; #FUNCTION# ====================================================================================================================
  439. ; Author ........: Gary Frost (gafrost)
  440. ; Modified.......:
  441. ; ===============================================================================================================================
  442. Func _GUICtrlComboBoxEx_GetItemTextLen($hWnd, $iIndex)
  443. Return _GUICtrlComboBox_GetLBTextLen($hWnd, $iIndex)
  444. EndFunc ;==>_GUICtrlComboBoxEx_GetItemTextLen
  445. ; #FUNCTION# ====================================================================================================================
  446. ; Author ........: Gary Frost (gafrost)
  447. ; Modified.......:
  448. ; ===============================================================================================================================
  449. Func _GUICtrlComboBoxEx_GetList($hWnd)
  450. Return _GUICtrlComboBox_GetList($hWnd)
  451. EndFunc ;==>_GUICtrlComboBoxEx_GetList
  452. ; #FUNCTION# ====================================================================================================================
  453. ; Author ........: Gary Frost (gafrost)
  454. ; Modified.......:
  455. ; ===============================================================================================================================
  456. Func _GUICtrlComboBoxEx_GetListArray($hWnd)
  457. Local $sDelimiter = Opt("GUIDataSeparatorChar")
  458. Return StringSplit(_GUICtrlComboBoxEx_GetList($hWnd), $sDelimiter)
  459. EndFunc ;==>_GUICtrlComboBoxEx_GetListArray
  460. ; #FUNCTION# ====================================================================================================================
  461. ; Author ........: Gary Frost (gafrost)
  462. ; Modified.......:
  463. ; ===============================================================================================================================
  464. Func _GUICtrlComboBoxEx_GetLocale($hWnd)
  465. Local $hCombo = _GUICtrlComboBoxEx_GetComboControl($hWnd)
  466. Return _GUICtrlComboBox_GetLocale($hCombo)
  467. EndFunc ;==>_GUICtrlComboBoxEx_GetLocale
  468. ; #FUNCTION# ====================================================================================================================
  469. ; Author ........: Gary Frost (gafrost)
  470. ; Modified.......:
  471. ; ===============================================================================================================================
  472. Func _GUICtrlComboBoxEx_GetLocaleCountry($hWnd)
  473. Return _WinAPI_HiWord(_GUICtrlComboBoxEx_GetLocale($hWnd))
  474. EndFunc ;==>_GUICtrlComboBoxEx_GetLocaleCountry
  475. ; #FUNCTION# ====================================================================================================================
  476. ; Author ........: Gary Frost (gafrost)
  477. ; Modified.......:
  478. ; ===============================================================================================================================
  479. Func _GUICtrlComboBoxEx_GetLocaleLang($hWnd)
  480. Return _WinAPI_LoWord(_GUICtrlComboBoxEx_GetLocale($hWnd))
  481. EndFunc ;==>_GUICtrlComboBoxEx_GetLocaleLang
  482. ; #FUNCTION# ====================================================================================================================
  483. ; Author ........: Gary Frost (gafrost)
  484. ; Modified.......:
  485. ; ===============================================================================================================================
  486. Func _GUICtrlComboBoxEx_GetLocalePrimLang($hWnd)
  487. Return _WinAPI_PrimaryLangId(_GUICtrlComboBoxEx_GetLocaleLang($hWnd))
  488. EndFunc ;==>_GUICtrlComboBoxEx_GetLocalePrimLang
  489. ; #FUNCTION# ====================================================================================================================
  490. ; Author ........: Gary Frost (gafrost)
  491. ; Modified.......:
  492. ; ===============================================================================================================================
  493. Func _GUICtrlComboBoxEx_GetLocaleSubLang($hWnd)
  494. Return _WinAPI_SubLangId(_GUICtrlComboBoxEx_GetLocaleLang($hWnd))
  495. EndFunc ;==>_GUICtrlComboBoxEx_GetLocaleSubLang
  496. ; #FUNCTION# ====================================================================================================================
  497. ; Author ........: Gary Frost (gafrost)
  498. ; Modified.......:
  499. ; ===============================================================================================================================
  500. Func _GUICtrlComboBoxEx_GetMinVisible($hWnd)
  501. Local $hCombo = _GUICtrlComboBoxEx_GetComboControl($hWnd)
  502. Return _GUICtrlComboBox_GetMinVisible($hCombo)
  503. EndFunc ;==>_GUICtrlComboBoxEx_GetMinVisible
  504. ; #FUNCTION# ====================================================================================================================
  505. ; Author ........: Gary Frost (gafrost)
  506. ; Modified.......:
  507. ; ===============================================================================================================================
  508. Func _GUICtrlComboBoxEx_GetTopIndex($hWnd)
  509. Local $hCombo = _GUICtrlComboBoxEx_GetComboControl($hWnd)
  510. Return _GUICtrlComboBox_GetTopIndex($hCombo)
  511. EndFunc ;==>_GUICtrlComboBoxEx_GetTopIndex
  512. ; #FUNCTION# ====================================================================================================================
  513. ; Author ........: Gary Frost (gafrost)
  514. ; Modified.......:
  515. ; ===============================================================================================================================
  516. Func _GUICtrlComboBoxEx_GetUnicode($hWnd)
  517. Return _SendMessage($hWnd, $CBEM_GETUNICODEFORMAT) <> 0
  518. EndFunc ;==>_GUICtrlComboBoxEx_GetUnicode
  519. ; #NO_DOC_FUNCTION# =============================================================================================================
  520. ; Name...........: _GUICtrlComboBoxEx_HasEditChanged
  521. ; Description ...: Determines whether the user has changed the text of a ComboBoxEx edit control
  522. ; Syntax.........: _GUICtrlComboBoxEx_HasEditChanged ( $hWnd )
  523. ; Parameters ....: $hWnd - Handle to control
  524. ; Return values .: True - Text in the control's edit box has changed
  525. ; False - No change
  526. ; Author ........: Gary Frost (gafrost)
  527. ; Modified.......:
  528. ; Remarks .......:
  529. ; Related .......:
  530. ; Link ..........:
  531. ; Example .......:
  532. ; ===============================================================================================================================
  533. Func _GUICtrlComboBoxEx_HasEditChanged($hWnd)
  534. Local $tInfo
  535. If _GUICtrlComboBoxEx_GetComboBoxInfo($hWnd, $tInfo) Then
  536. Local $hEdit = DllStructGetData($tInfo, "hEdit")
  537. Return _SendMessage($hEdit, $CBEM_HASEDITCHANGED) <> 0
  538. Else
  539. Return False
  540. EndIf
  541. EndFunc ;==>_GUICtrlComboBoxEx_HasEditChanged
  542. ; #FUNCTION# ====================================================================================================================
  543. ; Author ........: Gary Frost (gafrost)
  544. ; Modified.......:
  545. ; ===============================================================================================================================
  546. Func _GUICtrlComboBoxEx_InitStorage($hWnd, $iNum, $iBytes)
  547. Local $hCombo = _GUICtrlComboBoxEx_GetComboControl($hWnd)
  548. Return _GUICtrlComboBox_InitStorage($hCombo, $iNum, $iBytes)
  549. EndFunc ;==>_GUICtrlComboBoxEx_InitStorage
  550. ; #FUNCTION# ====================================================================================================================
  551. ; Author ........: Gary Frost (gafrost)
  552. ; Modified.......:
  553. ; ===============================================================================================================================
  554. Func _GUICtrlComboBoxEx_InsertString($hWnd, $sText, $iIndex = -1, $iImage = -1, $iSelectedImage = -1, $iOverlayImage = -1, $iIndent = -1, $iParam = -1)
  555. Local $iBuffer = 0, $iMask, $iRet
  556. Local $bUnicode = _GUICtrlComboBoxEx_GetUnicode($hWnd)
  557. Local $tItem = DllStructCreate($tagCOMBOBOXEXITEM)
  558. If $sText <> -1 Then
  559. $iMask = BitOR($CBEIF_TEXT, $CBEIF_LPARAM)
  560. $iBuffer = StringLen($sText) + 1
  561. Local $tBuffer
  562. If $bUnicode Then
  563. $tBuffer = DllStructCreate("wchar Text[" & $iBuffer & "]")
  564. $iBuffer *= 2
  565. Else
  566. $tBuffer = DllStructCreate("char Text[" & $iBuffer & "]")
  567. EndIf
  568. DllStructSetData($tBuffer, "Text", $sText)
  569. DllStructSetData($tItem, "Text", DllStructGetPtr($tBuffer))
  570. DllStructSetData($tItem, "TextMax", $iBuffer)
  571. Else
  572. $iMask = BitOR($CBEIF_DI_SETITEM, $CBEIF_LPARAM)
  573. EndIf
  574. If $iImage >= 0 Then $iMask = BitOR($iMask, $CBEIF_IMAGE)
  575. If $iSelectedImage >= 0 Then $iMask = BitOR($iMask, $CBEIF_SELECTEDIMAGE)
  576. If $iOverlayImage >= 0 Then $iMask = BitOR($iMask, $CBEIF_OVERLAY)
  577. If $iIndent >= 1 Then $iMask = BitOR($iMask, $CBEIF_INDENT)
  578. If $iParam = -1 Then $iParam = _GUICtrlComboBoxEx_GetCount($hWnd)
  579. DllStructSetData($tItem, "Mask", $iMask)
  580. DllStructSetData($tItem, "Item", $iIndex)
  581. DllStructSetData($tItem, "Image", $iImage)
  582. DllStructSetData($tItem, "SelectedImage", $iSelectedImage)
  583. DllStructSetData($tItem, "OverlayImage", $iOverlayImage)
  584. DllStructSetData($tItem, "Indent", $iIndent)
  585. DllStructSetData($tItem, "Param", $iParam)
  586. If _WinAPI_InProcess($hWnd, $__g_hCBExLastWnd) Or ($sText = -1) Then
  587. $iRet = _SendMessage($hWnd, $CBEM_INSERTITEMW, 0, $tItem, 0, "wparam", "struct*")
  588. Else
  589. Local $iItem = DllStructGetSize($tItem)
  590. Local $tMemMap
  591. Local $pMemory = _MemInit($hWnd, $iItem + $iBuffer, $tMemMap)
  592. Local $pText = $pMemory + $iItem
  593. DllStructSetData($tItem, "Text", $pText)
  594. _MemWrite($tMemMap, $tItem, $pMemory, $iItem)
  595. _MemWrite($tMemMap, $tBuffer, $pText, $iBuffer)
  596. If $bUnicode Then
  597. $iRet = _SendMessage($hWnd, $CBEM_INSERTITEMW, 0, $pMemory, 0, "wparam", "ptr")
  598. Else
  599. $iRet = _SendMessage($hWnd, $CBEM_INSERTITEMA, 0, $pMemory, 0, "wparam", "ptr")
  600. EndIf
  601. _MemFree($tMemMap)
  602. EndIf
  603. Return $iRet
  604. EndFunc ;==>_GUICtrlComboBoxEx_InsertString
  605. ; #FUNCTION# ====================================================================================================================
  606. ; Author ........: Gary Frost (gafrost)
  607. ; Modified.......:
  608. ; ===============================================================================================================================
  609. Func _GUICtrlComboBoxEx_LimitText($hWnd, $iLimit = 0)
  610. _SendMessage($hWnd, $CB_LIMITTEXT, $iLimit)
  611. EndFunc ;==>_GUICtrlComboBoxEx_LimitText
  612. ; #FUNCTION# ====================================================================================================================
  613. ; Author ........: Gary Frost (gafrost)
  614. ; Modified.......:
  615. ; ===============================================================================================================================
  616. Func _GUICtrlComboBoxEx_ReplaceEditSel($hWnd, $sText)
  617. Local $hCombo = _GUICtrlComboBoxEx_GetComboControl($hWnd)
  618. _GUICtrlComboBox_ReplaceEditSel($hCombo, $sText)
  619. EndFunc ;==>_GUICtrlComboBoxEx_ReplaceEditSel
  620. ; #FUNCTION# ====================================================================================================================
  621. ; Author ........: Gary Frost (gafrost)
  622. ; Modified.......:
  623. ; ===============================================================================================================================
  624. Func _GUICtrlComboBoxEx_ResetContent($hWnd)
  625. _SendMessage($hWnd, $CB_RESETCONTENT)
  626. EndFunc ;==>_GUICtrlComboBoxEx_ResetContent
  627. ; #FUNCTION# ====================================================================================================================
  628. ; Author ........: Gary Frost (gafrost)
  629. ; Modified.......:
  630. ; ===============================================================================================================================
  631. Func _GUICtrlComboBoxEx_SetCurSel($hWnd, $iIndex = -1)
  632. Return _SendMessage($hWnd, $CB_SETCURSEL, $iIndex)
  633. EndFunc ;==>_GUICtrlComboBoxEx_SetCurSel
  634. ; #FUNCTION# ====================================================================================================================
  635. ; Author ........: Gary Frost (gafrost)
  636. ; Modified.......:
  637. ; ===============================================================================================================================
  638. Func _GUICtrlComboBoxEx_SetDroppedWidth($hWnd, $iWidth)
  639. Local $hCombo = _GUICtrlComboBoxEx_GetComboControl($hWnd)
  640. Return _GUICtrlComboBox_SetDroppedWidth($hCombo, $iWidth)
  641. EndFunc ;==>_GUICtrlComboBoxEx_SetDroppedWidth
  642. ; #FUNCTION# ====================================================================================================================
  643. ; Author ........: Gary Frost (gafrost)
  644. ; Modified.......:
  645. ; ===============================================================================================================================
  646. Func _GUICtrlComboBoxEx_SetEditSel($hWnd, $iStart, $iStop)
  647. Local $hCombo = _GUICtrlComboBoxEx_GetComboControl($hWnd)
  648. Return _GUICtrlComboBox_SetEditSel($hCombo, $iStart, $iStop)
  649. EndFunc ;==>_GUICtrlComboBoxEx_SetEditSel
  650. ; #FUNCTION# ====================================================================================================================
  651. ; Author ........: Gary Frost (gafrost)
  652. ; Modified.......:
  653. ; ===============================================================================================================================
  654. Func _GUICtrlComboBoxEx_SetEditText($hWnd, $sText)
  655. Local $hComboBox = _GUICtrlComboBoxEx_GetComboControl($hWnd)
  656. _GUICtrlComboBox_SetEditSel($hComboBox, 0, -1)
  657. _GUICtrlComboBox_ReplaceEditSel($hComboBox, $sText)
  658. EndFunc ;==>_GUICtrlComboBoxEx_SetEditText
  659. ; #FUNCTION# ====================================================================================================================
  660. ; Author ........: Gary Frost (gafrost)
  661. ; Modified.......:
  662. ; ===============================================================================================================================
  663. Func _GUICtrlComboBoxEx_SetExtendedStyle($hWnd, $iExStyle, $iExMask = 0)
  664. Local $iRet = _SendMessage($hWnd, $CBEM_SETEXTENDEDSTYLE, $iExMask, $iExStyle)
  665. _WinAPI_InvalidateRect($hWnd)
  666. Return $iRet
  667. EndFunc ;==>_GUICtrlComboBoxEx_SetExtendedStyle
  668. ; #FUNCTION# ====================================================================================================================
  669. ; Author ........: Gary Frost (gafrost)
  670. ; Modified.......:
  671. ; ===============================================================================================================================
  672. Func _GUICtrlComboBoxEx_SetExtendedUI($hWnd, $bExtended = False)
  673. Local $hComboBox = _GUICtrlComboBoxEx_GetComboControl($hWnd)
  674. Return _SendMessage($hComboBox, $CB_SETEXTENDEDUI, $bExtended) = 0
  675. EndFunc ;==>_GUICtrlComboBoxEx_SetExtendedUI
  676. ; #FUNCTION# ====================================================================================================================
  677. ; Author ........: Gary Frost (gafrost)
  678. ; Modified.......:
  679. ; ===============================================================================================================================
  680. Func _GUICtrlComboBoxEx_SetImageList($hWnd, $hHandle)
  681. Local $hResult = _SendMessage($hWnd, $CBEM_SETIMAGELIST, 0, $hHandle, 0, "wparam", "handle", "handle")
  682. _SendMessage($hWnd, $__COMBOBOXEXCONSTANT_WM_SIZE)
  683. Return $hResult
  684. EndFunc ;==>_GUICtrlComboBoxEx_SetImageList
  685. ; #FUNCTION# ====================================================================================================================
  686. ; Author ........: Gary Frost (gafrost)
  687. ; Modified.......:
  688. ; ===============================================================================================================================
  689. Func _GUICtrlComboBoxEx_SetItem($hWnd, $sText, $iIndex = 0, $iImage = -1, $iSelectedImage = -1, $iOverlayImage = -1, $iIndent = -1, $iParam = -1)
  690. Local $iBuffer = StringLen($sText) + 1
  691. Local $tBuffer = DllStructCreate("wchar Text[" & $iBuffer & "]")
  692. Local $pBuffer = DllStructGetPtr($tBuffer)
  693. Local $tItem = DllStructCreate($tagCOMBOBOXEXITEM)
  694. Local $iMask = $CBEIF_TEXT
  695. If $iImage <> -1 Then $iMask = BitOR($iMask, $CBEIF_IMAGE)
  696. If $iSelectedImage <> -1 Then $iMask = BitOR($iMask, $CBEIF_SELECTEDIMAGE)
  697. If $iOverlayImage <> -1 Then $iMask = BitOR($iMask, $CBEIF_OVERLAY)
  698. If $iParam <> -1 Then $iMask = BitOR($iMask, $CBEIF_LPARAM)
  699. If $iIndent <> -1 Then $iMask = BitOR($iMask, $CBEIF_INDENT)
  700. DllStructSetData($tBuffer, "Text", $sText)
  701. DllStructSetData($tItem, "Mask", $iMask)
  702. DllStructSetData($tItem, "Item", $iIndex)
  703. DllStructSetData($tItem, "Text", $pBuffer)
  704. DllStructSetData($tItem, "TextMax", $iBuffer * 2)
  705. DllStructSetData($tItem, "Image", $iImage)
  706. DllStructSetData($tItem, "Param", $iParam)
  707. DllStructSetData($tItem, "Indent", $iIndent)
  708. DllStructSetData($tItem, "SelectedImage", $iSelectedImage)
  709. DllStructSetData($tItem, "OverlayImage", $iOverlayImage)
  710. Return _GUICtrlComboBoxEx_SetItemEx($hWnd, $tItem)
  711. EndFunc ;==>_GUICtrlComboBoxEx_SetItem
  712. ; #FUNCTION# ====================================================================================================================
  713. ; Author ........: Gary Frost (gafrost)
  714. ; Modified.......:
  715. ; ===============================================================================================================================
  716. Func _GUICtrlComboBoxEx_SetItemEx($hWnd, ByRef $tItem)
  717. Local $iItem = DllStructGetSize($tItem)
  718. Local $iBuffer = DllStructGetData($tItem, "TextMax")
  719. If $iBuffer = 0 Then $iBuffer = 1
  720. Local $pBuffer = DllStructGetData($tItem, "Text")
  721. Local $tMemMap
  722. Local $pMemory = _MemInit($hWnd, $iItem + $iBuffer, $tMemMap)
  723. Local $pText = $pMemory + $iItem
  724. DllStructSetData($tItem, "Text", $pText)
  725. _MemWrite($tMemMap, $tItem, $pMemory, $iItem)
  726. If $pBuffer <> 0 Then _MemWrite($tMemMap, $pBuffer, $pText, $iBuffer)
  727. Local $iRet = _SendMessage($hWnd, $CBEM_SETITEMW, 0, $pMemory, 0, "wparam", "ptr")
  728. _MemFree($tMemMap)
  729. Return $iRet <> 0
  730. EndFunc ;==>_GUICtrlComboBoxEx_SetItemEx
  731. ; #FUNCTION# ====================================================================================================================
  732. ; Author ........: Gary Frost (gafrost)
  733. ; Modified.......:
  734. ; ===============================================================================================================================
  735. Func _GUICtrlComboBoxEx_SetItemHeight($hWnd, $iComponent, $iHeight)
  736. Return _SendMessage($hWnd, $CB_SETITEMHEIGHT, $iComponent, $iHeight)
  737. EndFunc ;==>_GUICtrlComboBoxEx_SetItemHeight
  738. ; #FUNCTION# ====================================================================================================================
  739. ; Author ........: Gary Frost (gafrost)
  740. ; Modified.......:
  741. ; ===============================================================================================================================
  742. Func _GUICtrlComboBoxEx_SetItemImage($hWnd, $iIndex, $iImage)
  743. Local $tItem = DllStructCreate($tagCOMBOBOXEXITEM)
  744. DllStructSetData($tItem, "Mask", $CBEIF_IMAGE)
  745. DllStructSetData($tItem, "Item", $iIndex)
  746. DllStructSetData($tItem, "Image", $iImage)
  747. Return _GUICtrlComboBoxEx_SetItemEx($hWnd, $tItem)
  748. EndFunc ;==>_GUICtrlComboBoxEx_SetItemImage
  749. ; #FUNCTION# ====================================================================================================================
  750. ; Author ........: Gary Frost (gafrost)
  751. ; Modified.......:
  752. ; ===============================================================================================================================
  753. Func _GUICtrlComboBoxEx_SetItemIndent($hWnd, $iIndex, $iIndent)
  754. Local $tItem = DllStructCreate($tagCOMBOBOXEXITEM)
  755. DllStructSetData($tItem, "Mask", $CBEIF_INDENT)
  756. DllStructSetData($tItem, "Item", $iIndex)
  757. DllStructSetData($tItem, "Indent", $iIndent)
  758. Return _GUICtrlComboBoxEx_SetItemEx($hWnd, $tItem)
  759. EndFunc ;==>_GUICtrlComboBoxEx_SetItemIndent
  760. ; #FUNCTION# ====================================================================================================================
  761. ; Author ........: Gary Frost (gafrost)
  762. ; Modified.......:
  763. ; ===============================================================================================================================
  764. Func _GUICtrlComboBoxEx_SetItemOverlayImage($hWnd, $iIndex, $iImage)
  765. Local $tItem = DllStructCreate($tagCOMBOBOXEXITEM)
  766. DllStructSetData($tItem, "Mask", $CBEIF_OVERLAY)
  767. DllStructSetData($tItem, "Item", $iIndex)
  768. DllStructSetData($tItem, "OverlayImage", $iImage)
  769. Return _GUICtrlComboBoxEx_SetItemEx($hWnd, $tItem)
  770. EndFunc ;==>_GUICtrlComboBoxEx_SetItemOverlayImage
  771. ; #FUNCTION# ====================================================================================================================
  772. ; Author ........: Gary Frost (gafrost)
  773. ; Modified.......:
  774. ; ===============================================================================================================================
  775. Func _GUICtrlComboBoxEx_SetItemParam($hWnd, $iIndex, $iParam)
  776. Local $tItem = DllStructCreate($tagCOMBOBOXEXITEM)
  777. DllStructSetData($tItem, "Mask", $CBEIF_LPARAM)
  778. DllStructSetData($tItem, "Item", $iIndex)
  779. DllStructSetData($tItem, "Param", $iParam)
  780. Return _GUICtrlComboBoxEx_SetItemEx($hWnd, $tItem)
  781. EndFunc ;==>_GUICtrlComboBoxEx_SetItemParam
  782. ; #FUNCTION# ====================================================================================================================
  783. ; Author ........: Gary Frost (gafrost)
  784. ; Modified.......:
  785. ; ===============================================================================================================================
  786. Func _GUICtrlComboBoxEx_SetItemSelectedImage($hWnd, $iIndex, $iImage)
  787. Local $tItem = DllStructCreate($tagCOMBOBOXEXITEM)
  788. DllStructSetData($tItem, "Mask", $CBEIF_SELECTEDIMAGE)
  789. DllStructSetData($tItem, "Item", $iIndex)
  790. DllStructSetData($tItem, "SelectedImage", $iImage)
  791. Return _GUICtrlComboBoxEx_SetItemEx($hWnd, $tItem)
  792. EndFunc ;==>_GUICtrlComboBoxEx_SetItemSelectedImage
  793. ; #FUNCTION# ====================================================================================================================
  794. ; Author ........: Gary Frost (gafrost)
  795. ; Modified.......:
  796. ; ===============================================================================================================================
  797. Func _GUICtrlComboBoxEx_SetMinVisible($hWnd, $iMinimum)
  798. Local $hCombo = _GUICtrlComboBoxEx_GetComboControl($hWnd)
  799. Return _GUICtrlComboBox_SetMinVisible($hCombo, $iMinimum)
  800. EndFunc ;==>_GUICtrlComboBoxEx_SetMinVisible
  801. ; #FUNCTION# ====================================================================================================================
  802. ; Author ........: Gary Frost (gafrost)
  803. ; Modified.......:
  804. ; ===============================================================================================================================
  805. Func _GUICtrlComboBoxEx_SetTopIndex($hWnd, $iIndex)
  806. Local $hCombo = _GUICtrlComboBoxEx_GetComboControl($hWnd)
  807. Return _GUICtrlComboBox_SetTopIndex($hCombo, $iIndex)
  808. EndFunc ;==>_GUICtrlComboBoxEx_SetTopIndex
  809. ; #FUNCTION# ====================================================================================================================
  810. ; Author ........: Gary Frost (gafrost)
  811. ; Modified.......:
  812. ; ===============================================================================================================================
  813. Func _GUICtrlComboBoxEx_SetUnicode($hWnd, $bUnicode = True)
  814. Local $iUnicode = _SendMessage($hWnd, $CBEM_SETUNICODEFORMAT, $bUnicode) <> 0
  815. Return $iUnicode <> $bUnicode
  816. EndFunc ;==>_GUICtrlComboBoxEx_SetUnicode
  817. ; #FUNCTION# ====================================================================================================================
  818. ; Author ........: Gary Frost (gafrost)
  819. ; Modified.......:
  820. ; ===============================================================================================================================
  821. Func _GUICtrlComboBoxEx_ShowDropDown($hWnd, $bShow = False)
  822. _GUICtrlComboBox_ShowDropDown($hWnd, $bShow)
  823. EndFunc ;==>_GUICtrlComboBoxEx_ShowDropDown