12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100 |
- #include-once
- #include "MenuConstants.au3"
- #include "StructureConstants.au3"
- #include "WinAPIConv.au3"
- #include "WinAPIMisc.au3"
- #include "WinAPISysInternals.au3"
- ; #INDEX# =======================================================================================================================
- ; Title .........: Menu
- ; AutoIt Version : 3.3.14.5
- ; Language ......: English
- ; Description ...: Functions that assist with Menu control management.
- ; A menu is a list of items that specify options or groups of options (a submenu) for an application. Clicking a
- ; menu item opens a submenu or causes the application to carry out a command.
- ; Author(s) .....: Paul Campbell (PaulIA)
- ; ===============================================================================================================================
- ; #CONSTANTS# ===================================================================================================================
- Global Const $__MENUCONSTANT_OBJID_CLIENT = 0xFFFFFFFC
- ; ===============================================================================================================================
- ; #NO_DOC_FUNCTION# =============================================================================================================
- ; Not working/documented/implemented at this time
- ;
- ; _GUICtrlMenu_EndMenu
- ; ===============================================================================================================================
- ; #CURRENT# =====================================================================================================================
- ; _GUICtrlMenu_AddMenuItem
- ; _GUICtrlMenu_AppendMenu
- ; _GUICtrlMenu_CalculatePopupWindowPosition
- ; _GUICtrlMenu_CheckMenuItem
- ; _GUICtrlMenu_CheckRadioItem
- ; _GUICtrlMenu_CreateMenu
- ; _GUICtrlMenu_CreatePopup
- ; _GUICtrlMenu_DeleteMenu
- ; _GUICtrlMenu_DestroyMenu
- ; _GUICtrlMenu_DrawMenuBar
- ; _GUICtrlMenu_EnableMenuItem
- ; _GUICtrlMenu_FindItem
- ; _GUICtrlMenu_FindParent
- ; _GUICtrlMenu_GetItemBmp
- ; _GUICtrlMenu_GetItemBmpChecked
- ; _GUICtrlMenu_GetItemBmpUnchecked
- ; _GUICtrlMenu_GetItemChecked
- ; _GUICtrlMenu_GetItemCount
- ; _GUICtrlMenu_GetItemData
- ; _GUICtrlMenu_GetItemDefault
- ; _GUICtrlMenu_GetItemDisabled
- ; _GUICtrlMenu_GetItemEnabled
- ; _GUICtrlMenu_GetItemGrayed
- ; _GUICtrlMenu_GetItemHighlighted
- ; _GUICtrlMenu_GetItemID
- ; _GUICtrlMenu_GetItemInfo
- ; _GUICtrlMenu_GetItemRect
- ; _GUICtrlMenu_GetItemRectEx
- ; _GUICtrlMenu_GetItemState
- ; _GUICtrlMenu_GetItemStateEx
- ; _GUICtrlMenu_GetItemSubMenu
- ; _GUICtrlMenu_GetItemText
- ; _GUICtrlMenu_GetItemType
- ; _GUICtrlMenu_GetMenu
- ; _GUICtrlMenu_GetMenuBackground
- ; _GUICtrlMenu_GetMenuBarInfo
- ; _GUICtrlMenu_GetMenuContextHelpID
- ; _GUICtrlMenu_GetMenuData
- ; _GUICtrlMenu_GetMenuDefaultItem
- ; _GUICtrlMenu_GetMenuHeight
- ; _GUICtrlMenu_GetMenuInfo
- ; _GUICtrlMenu_GetMenuStyle
- ; _GUICtrlMenu_GetSystemMenu
- ; _GUICtrlMenu_InsertMenuItem
- ; _GUICtrlMenu_InsertMenuItemEx
- ; _GUICtrlMenu_IsMenu
- ; _GUICtrlMenu_LoadMenu
- ; _GUICtrlMenu_MapAccelerator
- ; _GUICtrlMenu_MenuItemFromPoint
- ; _GUICtrlMenu_RemoveMenu
- ; _GUICtrlMenu_SetItemBitmaps
- ; _GUICtrlMenu_SetItemBmp
- ; _GUICtrlMenu_SetItemBmpChecked
- ; _GUICtrlMenu_SetItemBmpUnchecked
- ; _GUICtrlMenu_SetItemChecked
- ; _GUICtrlMenu_SetItemData
- ; _GUICtrlMenu_SetItemDefault
- ; _GUICtrlMenu_SetItemDisabled
- ; _GUICtrlMenu_SetItemEnabled
- ; _GUICtrlMenu_SetItemGrayed
- ; _GUICtrlMenu_SetItemHighlighted
- ; _GUICtrlMenu_SetItemID
- ; _GUICtrlMenu_SetItemInfo
- ; _GUICtrlMenu_SetItemState
- ; _GUICtrlMenu_SetItemSubMenu
- ; _GUICtrlMenu_SetItemText
- ; _GUICtrlMenu_SetItemType
- ; _GUICtrlMenu_SetMenu
- ; _GUICtrlMenu_SetMenuBackground
- ; _GUICtrlMenu_SetMenuContextHelpID
- ; _GUICtrlMenu_SetMenuData
- ; _GUICtrlMenu_SetMenuDefaultItem
- ; _GUICtrlMenu_SetMenuHeight
- ; _GUICtrlMenu_SetMenuInfo
- ; _GUICtrlMenu_SetMenuStyle
- ; _GUICtrlMenu_TrackPopupMenu
- ; ===============================================================================================================================
- ; #INTERNAL_USE_ONLY# ===========================================================================================================
- ; $tagMENUBARINFO
- ; $tagMDINEXTMENU
- ; $tagMENUGETOBJECTINFO
- ; $tagTPMPARAMS
- ; ===============================================================================================================================
- ; #INTERNAL_USE_ONLY# ===========================================================================================================
- ; Name...........: $tagMENUBARINFO
- ; Description ...: tagMENUBARINFO structure
- ; Fields ........: Size - Specifies the size, in bytes, of the structure
- ; Left - Specifies the x coordinate of the upper left corner of the rectangle
- ; Top - Specifies the y coordinate of the upper left corner of the rectangle
- ; Right - Specifies the x coordinate of the lower right corner of the rectangle
- ; Bottom - Specifies the y coordinate of the lower right corner of the rectangle
- ; hMenu - Handle to the menu bar or popup menu
- ; hWndMenu - Handle to the menu bar or popup menu
- ; Focused - True if the item has focus
- ; Author ........: Paul Campbell (PaulIA)
- ; Remarks .......:
- ; ===============================================================================================================================
- Global Const $tagMENUBARINFO = "dword Size;" & $tagRECT & ";handle hMenu;handle hWndMenu;bool Focused"
- ; #INTERNAL_USE_ONLY# ===========================================================================================================
- ; Name...........: $tagMDINEXTMENU
- ; Description ...: tagMDINEXTMENU structure
- ; Fields ........: hMenuIn - Receives a handle to the current menu
- ; hMenuNext - Specifies a handle to the menu to be activated
- ; hWndNext - Specifies a handle to the window to receive the menu notification messages
- ; Author ........: Paul Campbell (PaulIA)
- ; Remarks .......:
- ; ===============================================================================================================================
- Global Const $tagMDINEXTMENU = "handle hMenuIn;handle hMenuNext;hwnd hWndNext"
- ; #INTERNAL_USE_ONLY# ===========================================================================================================
- ; Name...........: $tagMENUGETOBJECTINFO
- ; Description ...: tagMENUGETOBJECTINFO structure
- ; Fields ........: Flags - Position of the mouse cursor with respect to the item indicated by Pos. It can be one of the following
- ; +values.:
- ; |$MNGOF_BOTTOMGAP - Mouse is on the bottom of the item indicated by Pos
- ; |$MNGOF_TOPGAP - Mouse is on the top of the item indicated by Pos
- ; Pos - Position of the item the mouse cursor is on
- ; hMenu - Handle to the menu the mouse cursor is on
- ; RIID - Identifier of the requested interface. Currently it can only be IDropTarget.
- ; Obj - Pointer to the interface corresponding to the RIID member. This pointer is to be returned by the
- ; +application when processing the message.
- ; Author ........: Paul Campbell (PaulIA)
- ; Remarks .......: The tagMENUGETOBJECTINFO structure is used only in drag and drop menus. When the $WM_MENUGETOBJECT message is
- ; sent, lParam is a pointer to this structure. To create a drag and drop menu, call SetMenuInfo with
- ; $MNS_DRAGDROP set
- ; ===============================================================================================================================
- Global Const $tagMENUGETOBJECTINFO = "dword Flags;uint Pos;handle hMenu;ptr RIID;ptr Obj"
- ; #INTERNAL_USE_ONLY# ===========================================================================================================
- ; Name...........: $tagTPMPARAMS
- ; Description ...: tagTPMPARAMS structure
- ; Fields ........: Size - Size of structure, in bytes
- ; Left - X position of upper left corner to exclude when positioing the window
- ; Top - Y position of upper left corner to exclude when positioing the window
- ; Right - X position of lower right corner to exclude when positioing the window
- ; Bottom - Y position of lower right corner to exclude when positioing the window
- ; Author ........: Paul Campbell (PaulIA)
- ; Remarks .......: All coordinates are in screen coordinates
- ; ===============================================================================================================================
- Global Const $tagTPMPARAMS = "uint Size;" & $tagRECT
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_AddMenuItem($hMenu, $sText, $iCmdID = 0, $hSubMenu = 0)
- Local $iIndex = _GUICtrlMenu_GetItemCount($hMenu)
- Local $tMenu = DllStructCreate($tagMENUITEMINFO)
- DllStructSetData($tMenu, "Size", DllStructGetSize($tMenu))
- DllStructSetData($tMenu, "ID", $iCmdID)
- DllStructSetData($tMenu, "SubMenu", $hSubMenu)
- If $sText = "" Then
- DllStructSetData($tMenu, "Mask", $MIIM_FTYPE)
- DllStructSetData($tMenu, "Type", $MFT_SEPARATOR)
- Else
- DllStructSetData($tMenu, "Mask", BitOR($MIIM_ID, $MIIM_STRING, $MIIM_SUBMENU))
- DllStructSetData($tMenu, "Type", $MFT_STRING)
- Local $tText = DllStructCreate("wchar Text[" & StringLen($sText) + 1 & "]")
- DllStructSetData($tText, "Text", $sText)
- DllStructSetData($tMenu, "TypeData", DllStructGetPtr($tText))
- EndIf
- Local $aResult = DllCall("user32.dll", "bool", "InsertMenuItemW", "handle", $hMenu, "uint", $iIndex, "bool", True, "struct*", $tMenu)
- If @error Then Return SetError(@error, @extended, -1)
- Return SetExtended($aResult[0], $iIndex)
- EndFunc ;==>_GUICtrlMenu_AddMenuItem
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_AppendMenu($hMenu, $iFlags, $iNewItem, $vNewItem)
- Local $sType = "wstr"
- If BitAND($iFlags, $MF_BITMAP) Then $sType = "handle"
- If BitAND($iFlags, $MF_OWNERDRAW) Then $sType = "ulong_ptr"
- Local $aResult = DllCall("user32.dll", "bool", "AppendMenuW", "handle", $hMenu, "uint", $iFlags, "uint_ptr", $iNewItem, $sType, $vNewItem)
- If @error Then Return SetError(@error, @extended, False)
- If $aResult[0] = 0 Then Return SetError(10, 0, False)
- _GUICtrlMenu_DrawMenuBar(_GUICtrlMenu_FindParent($hMenu))
- Return True
- EndFunc ;==>_GUICtrlMenu_AppendMenu
- ; #FUNCTION# ====================================================================================================================
- ; Author.........: Yashied
- ; Modified.......: jpm
- ; ===============================================================================================================================
- Func _GUICtrlMenu_CalculatePopupWindowPosition($iX, $iY, $iWidth, $iHeight, $iFlags = 0, $tExclude = 0)
- Local $tAnchor = DllStructCreate($tagPOINT)
- DllStructSetData($tAnchor, 1, $iX)
- DllStructSetData($tAnchor, 2, $iY)
- Local $tSIZE = DllStructCreate($tagSIZE)
- DllStructSetData($tSIZE, 1, $iWidth)
- DllStructSetData($tSIZE, 2, $iHeight)
- Local $tPos = DllStructCreate($tagRECT)
- Local $aRet = DllCall('user32.dll', 'bool', 'CalculatePopupWindowPosition', 'struct*', $tAnchor, 'struct*', $tSIZE, _
- 'uint', $iFlags, 'struct*', $tExclude, 'struct*', $tPos)
- If @error Or Not $aRet[0] Then Return SetError(@error + 10, @extended, 0)
- Return $tPos
- EndFunc ;==>_GUICtrlMenu_CalculatePopupWindowPosition
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_CheckMenuItem($hMenu, $iItem, $bCheck = True, $bByPos = True)
- Local $iByPos = 0
- If $bCheck Then $iByPos = BitOR($iByPos, $MF_CHECKED)
- If $bByPos Then $iByPos = BitOR($iByPos, $MF_BYPOSITION)
- Local $aResult = DllCall("user32.dll", "dword", "CheckMenuItem", "handle", $hMenu, "uint", $iItem, "uint", $iByPos)
- If @error Then Return SetError(@error, @extended, -1)
- Return $aResult[0]
- EndFunc ;==>_GUICtrlMenu_CheckMenuItem
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_CheckRadioItem($hMenu, $iFirst, $iLast, $iCheck, $bByPos = True)
- Local $iByPos = 0
- If $bByPos Then $iByPos = $MF_BYPOSITION
- Local $aResult = DllCall("user32.dll", "bool", "CheckMenuRadioItem", "handle", $hMenu, "uint", $iFirst, "uint", $iLast, "uint", $iCheck, "uint", $iByPos)
- If @error Then Return SetError(@error, @extended, False)
- Return $aResult[0]
- EndFunc ;==>_GUICtrlMenu_CheckRadioItem
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_CreateMenu($iStyle = $MNS_CHECKORBMP)
- Local $aResult = DllCall("user32.dll", "handle", "CreateMenu")
- If @error Then Return SetError(@error, @extended, 0)
- If $aResult[0] = 0 Then Return SetError(10, 0, 0)
- _GUICtrlMenu_SetMenuStyle($aResult[0], $iStyle)
- Return $aResult[0]
- EndFunc ;==>_GUICtrlMenu_CreateMenu
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_CreatePopup($iStyle = $MNS_CHECKORBMP)
- Local $aResult = DllCall("user32.dll", "handle", "CreatePopupMenu")
- If @error Then Return SetError(@error, @extended, 0)
- If $aResult[0] = 0 Then Return SetError(10, 0, 0)
- _GUICtrlMenu_SetMenuStyle($aResult[0], $iStyle)
- Return $aResult[0]
- EndFunc ;==>_GUICtrlMenu_CreatePopup
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_DeleteMenu($hMenu, $iItem, $bByPos = True)
- Local $iByPos = 0
- If $bByPos Then $iByPos = $MF_BYPOSITION
- Local $aResult = DllCall("user32.dll", "bool", "DeleteMenu", "handle", $hMenu, "uint", $iItem, "uint", $iByPos)
- If @error Then Return SetError(@error, @extended, False)
- If $aResult[0] = 0 Then Return SetError(10, 0, False)
- _GUICtrlMenu_DrawMenuBar(_GUICtrlMenu_FindParent($hMenu))
- Return True
- EndFunc ;==>_GUICtrlMenu_DeleteMenu
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_DestroyMenu($hMenu)
- Local $aResult = DllCall("user32.dll", "bool", "DestroyMenu", "handle", $hMenu)
- If @error Then Return SetError(@error, @extended, False)
- Return $aResult[0]
- EndFunc ;==>_GUICtrlMenu_DestroyMenu
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_DrawMenuBar($hWnd)
- Local $aResult = DllCall("user32.dll", "bool", "DrawMenuBar", "hwnd", $hWnd)
- If @error Then Return SetError(@error, @extended, False)
- Return $aResult[0]
- EndFunc ;==>_GUICtrlMenu_DrawMenuBar
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_EnableMenuItem($hMenu, $iItem, $iState = 0, $bByPos = True)
- Local $iByPos = $iState
- If $bByPos Then $iByPos = BitOR($iByPos, $MF_BYPOSITION)
- Local $aResult = DllCall("user32.dll", "bool", "EnableMenuItem", "handle", $hMenu, "uint", $iItem, "uint", $iByPos)
- If @error Then Return SetError(@error, @extended, False)
- If $aResult[0] = 0 Then Return SetError(10, 0, False)
- _GUICtrlMenu_DrawMenuBar(_GUICtrlMenu_FindParent($hMenu))
- Return True
- EndFunc ;==>_GUICtrlMenu_EnableMenuItem
- ; #NO_DOC_FUNCTION# =============================================================================================================
- ; Name...........: _GUICtrlMenu_EndMenu
- ; Description ...: Ends the calling thread's active menu
- ; Syntax.........: _GUICtrlMenu_EndMenu ( )
- ; Parameters ....:
- ; Return values .: Success - True
- ; Failure - False
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; Remarks .......: Does not work on menus in external programs
- ; Related .......:
- ; Link ..........: @@MsdnLink@@ EndMenu
- ; Example .......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_EndMenu()
- Local $aResult = DllCall("user32.dll", "bool", "EndMenu")
- If @error Then Return SetError(@error, @extended, False)
- Return $aResult[0]
- EndFunc ;==>_GUICtrlMenu_EndMenu
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_FindItem($hMenu, $sText, $bInStr = False, $iStart = 0)
- Local $sMenu
- For $iI = $iStart To _GUICtrlMenu_GetItemCount($hMenu)
- $sMenu = StringReplace(_GUICtrlMenu_GetItemText($hMenu, $iI), "&", "")
- Switch $bInStr
- Case False
- If $sMenu = $sText Then Return $iI
- Case True
- If StringInStr($sMenu, $sText) Then Return $iI
- EndSwitch
- Next
- Return -1
- EndFunc ;==>_GUICtrlMenu_FindItem
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_FindParent($hMenu)
- Local $hList = _WinAPI_EnumWindowsTop()
- For $iI = 1 To $hList[0][0]
- If _GUICtrlMenu_GetMenu($hList[$iI][0]) = $hMenu Then Return $hList[$iI][0]
- Next
- EndFunc ;==>_GUICtrlMenu_FindParent
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_GetItemBmp($hMenu, $iItem, $bByPos = True)
- Local $tInfo = _GUICtrlMenu_GetItemInfo($hMenu, $iItem, $bByPos)
- Return DllStructGetData($tInfo, "BmpItem")
- EndFunc ;==>_GUICtrlMenu_GetItemBmp
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_GetItemBmpChecked($hMenu, $iItem, $bByPos = True)
- Local $tInfo = _GUICtrlMenu_GetItemInfo($hMenu, $iItem, $bByPos)
- Return DllStructGetData($tInfo, "BmpChecked")
- EndFunc ;==>_GUICtrlMenu_GetItemBmpChecked
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_GetItemBmpUnchecked($hMenu, $iItem, $bByPos = True)
- Local $tInfo = _GUICtrlMenu_GetItemInfo($hMenu, $iItem, $bByPos)
- Return DllStructGetData($tInfo, "BmpUnchecked")
- EndFunc ;==>_GUICtrlMenu_GetItemBmpUnchecked
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_GetItemChecked($hMenu, $iItem, $bByPos = True)
- Return BitAND(_GUICtrlMenu_GetItemStateEx($hMenu, $iItem, $bByPos), $MF_CHECKED) <> 0
- EndFunc ;==>_GUICtrlMenu_GetItemChecked
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_GetItemCount($hMenu)
- Local $aResult = DllCall("user32.dll", "int", "GetMenuItemCount", "handle", $hMenu)
- If @error Then Return SetError(@error, @extended, -1)
- Return $aResult[0]
- EndFunc ;==>_GUICtrlMenu_GetItemCount
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_GetItemData($hMenu, $iItem, $bByPos = True)
- Local $tInfo = _GUICtrlMenu_GetItemInfo($hMenu, $iItem, $bByPos)
- Return DllStructGetData($tInfo, "ItemData")
- EndFunc ;==>_GUICtrlMenu_GetItemData
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_GetItemDefault($hMenu, $iItem, $bByPos = True)
- Return BitAND(_GUICtrlMenu_GetItemStateEx($hMenu, $iItem, $bByPos), $MF_DEFAULT) <> 0
- EndFunc ;==>_GUICtrlMenu_GetItemDefault
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_GetItemDisabled($hMenu, $iItem, $bByPos = True)
- Return BitAND(_GUICtrlMenu_GetItemStateEx($hMenu, $iItem, $bByPos), $MF_DISABLED) <> 0
- EndFunc ;==>_GUICtrlMenu_GetItemDisabled
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_GetItemEnabled($hMenu, $iItem, $bByPos = True)
- Return BitAND(_GUICtrlMenu_GetItemStateEx($hMenu, $iItem, $bByPos), $MF_DISABLED) = 0
- EndFunc ;==>_GUICtrlMenu_GetItemEnabled
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_GetItemGrayed($hMenu, $iItem, $bByPos = True)
- Return BitAND(_GUICtrlMenu_GetItemStateEx($hMenu, $iItem, $bByPos), $MF_GRAYED) <> 0
- EndFunc ;==>_GUICtrlMenu_GetItemGrayed
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_GetItemHighlighted($hMenu, $iItem, $bByPos = True)
- Return BitAND(_GUICtrlMenu_GetItemStateEx($hMenu, $iItem, $bByPos), $MF_HILITE) <> 0
- EndFunc ;==>_GUICtrlMenu_GetItemHighlighted
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_GetItemID($hMenu, $iItem, $bByPos = True)
- Local $tInfo = _GUICtrlMenu_GetItemInfo($hMenu, $iItem, $bByPos)
- Return DllStructGetData($tInfo, "ID")
- EndFunc ;==>_GUICtrlMenu_GetItemID
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_GetItemInfo($hMenu, $iItem, $bByPos = True)
- Local $tInfo = DllStructCreate($tagMENUITEMINFO)
- DllStructSetData($tInfo, "Size", DllStructGetSize($tInfo))
- DllStructSetData($tInfo, "Mask", $MIIM_DATAMASK)
- Local $aResult = DllCall("user32.dll", "bool", "GetMenuItemInfo", "handle", $hMenu, "uint", $iItem, "bool", $bByPos, "struct*", $tInfo)
- If @error Then Return SetError(@error, @extended, 0)
- Return SetExtended($aResult[0], $tInfo)
- EndFunc ;==>_GUICtrlMenu_GetItemInfo
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_GetItemRect($hWnd, $hMenu, $iItem)
- Local $tRECT = _GUICtrlMenu_GetItemRectEx($hWnd, $hMenu, $iItem)
- Local $aRect[4]
- $aRect[0] = DllStructGetData($tRECT, "Left")
- $aRect[1] = DllStructGetData($tRECT, "Top")
- $aRect[2] = DllStructGetData($tRECT, "Right")
- $aRect[3] = DllStructGetData($tRECT, "Bottom")
- Return $aRect
- EndFunc ;==>_GUICtrlMenu_GetItemRect
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_GetItemRectEx($hWnd, $hMenu, $iItem)
- Local $tRECT = DllStructCreate($tagRECT)
- Local $aResult = DllCall("user32.dll", "bool", "GetMenuItemRect", "hwnd", $hWnd, "handle", $hMenu, "uint", $iItem, "struct*", $tRECT)
- If @error Then Return SetError(@error, @extended, 0)
- Return SetExtended($aResult[0], $tRECT)
- EndFunc ;==>_GUICtrlMenu_GetItemRectEx
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_GetItemState($hMenu, $iItem, $bByPos = True)
- Local $iRet = 0
- Local $iState = _GUICtrlMenu_GetItemStateEx($hMenu, $iItem, $bByPos)
- If BitAND($iState, $MFS_CHECKED) <> 0 Then $iRet = BitOR($iRet, 1)
- If BitAND($iState, $MFS_DEFAULT) <> 0 Then $iRet = BitOR($iRet, 2)
- If BitAND($iState, $MFS_DISABLED) <> 0 Then $iRet = BitOR($iRet, 4)
- If BitAND($iState, $MFS_GRAYED) <> 0 Then $iRet = BitOR($iRet, 8)
- If BitAND($iState, $MFS_HILITE) <> 0 Then $iRet = BitOR($iRet, 16)
- Return $iRet
- EndFunc ;==>_GUICtrlMenu_GetItemState
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_GetItemStateEx($hMenu, $iItem, $bByPos = True)
- Local $tInfo = _GUICtrlMenu_GetItemInfo($hMenu, $iItem, $bByPos)
- Return DllStructGetData($tInfo, "State")
- EndFunc ;==>_GUICtrlMenu_GetItemStateEx
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_GetItemSubMenu($hMenu, $iItem)
- Local $aResult = DllCall("user32.dll", "handle", "GetSubMenu", "handle", $hMenu, "int", $iItem)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aResult[0]
- EndFunc ;==>_GUICtrlMenu_GetItemSubMenu
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_GetItemText($hMenu, $iItem, $bByPos = True)
- Local $iByPos = 0
- If $bByPos Then $iByPos = $MF_BYPOSITION
- Local $aResult = DllCall("user32.dll", "int", "GetMenuStringW", "handle", $hMenu, "uint", $iItem, "wstr", "", "int", 4096, "uint", $iByPos)
- If @error Then Return SetError(@error, @extended, 0)
- Return SetExtended($aResult[0], $aResult[3])
- EndFunc ;==>_GUICtrlMenu_GetItemText
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_GetItemType($hMenu, $iItem, $bByPos = True)
- Local $tInfo = _GUICtrlMenu_GetItemInfo($hMenu, $iItem, $bByPos)
- Return DllStructGetData($tInfo, "Type")
- EndFunc ;==>_GUICtrlMenu_GetItemType
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_GetMenu($hWnd)
- Local $aResult = DllCall("user32.dll", "handle", "GetMenu", "hwnd", $hWnd)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aResult[0]
- EndFunc ;==>_GUICtrlMenu_GetMenu
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_GetMenuBackground($hMenu)
- Local $tInfo = _GUICtrlMenu_GetMenuInfo($hMenu)
- Return DllStructGetData($tInfo, "hBack")
- EndFunc ;==>_GUICtrlMenu_GetMenuBackground
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_GetMenuBarInfo($hWnd, $iItem = 0, $iObject = 1)
- Local $aObject[3] = [$__MENUCONSTANT_OBJID_CLIENT, $OBJID_MENU, $OBJID_SYSMENU]
- Local $tInfo = DllStructCreate($tagMENUBARINFO)
- DllStructSetData($tInfo, "Size", DllStructGetSize($tInfo))
- Local $aResult = DllCall("user32.dll", "bool", "GetMenuBarInfo", "hwnd", $hWnd, "long", $aObject[$iObject], "long", $iItem, "struct*", $tInfo)
- If @error Then Return SetError(@error, @extended, 0)
- Local $aInfo[8]
- $aInfo[0] = DllStructGetData($tInfo, "Left")
- $aInfo[1] = DllStructGetData($tInfo, "Top")
- $aInfo[2] = DllStructGetData($tInfo, "Right")
- $aInfo[3] = DllStructGetData($tInfo, "Bottom")
- $aInfo[4] = DllStructGetData($tInfo, "hMenu")
- $aInfo[5] = DllStructGetData($tInfo, "hWndMenu")
- $aInfo[6] = BitAND(DllStructGetData($tInfo, "Focused"), 1) <> 0
- $aInfo[7] = BitAND(DllStructGetData($tInfo, "Focused"), 2) <> 0
- Return SetExtended($aResult[0], $aInfo)
- EndFunc ;==>_GUICtrlMenu_GetMenuBarInfo
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_GetMenuContextHelpID($hMenu)
- Local $tInfo = _GUICtrlMenu_GetMenuInfo($hMenu)
- Return DllStructGetData($tInfo, "ContextHelpID")
- EndFunc ;==>_GUICtrlMenu_GetMenuContextHelpID
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_GetMenuData($hMenu)
- Local $tInfo = _GUICtrlMenu_GetMenuInfo($hMenu)
- Return DllStructGetData($tInfo, "MenuData")
- EndFunc ;==>_GUICtrlMenu_GetMenuData
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_GetMenuDefaultItem($hMenu, $bByPos = True, $iFlags = 0)
- Local $aResult = DllCall("user32.dll", "INT", "GetMenuDefaultItem", "handle", $hMenu, "uint", $bByPos, "uint", $iFlags)
- If @error Then Return SetError(@error, @extended, -1)
- Return $aResult[0]
- EndFunc ;==>_GUICtrlMenu_GetMenuDefaultItem
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_GetMenuHeight($hMenu)
- Local $tInfo = _GUICtrlMenu_GetMenuInfo($hMenu)
- Return DllStructGetData($tInfo, "YMax")
- EndFunc ;==>_GUICtrlMenu_GetMenuHeight
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_GetMenuInfo($hMenu)
- Local $tInfo = DllStructCreate($tagMENUINFO)
- DllStructSetData($tInfo, "Size", DllStructGetSize($tInfo))
- DllStructSetData($tInfo, "Mask", BitOR($MIM_BACKGROUND, $MIM_HELPID, $MIM_MAXHEIGHT, $MIM_MENUDATA, $MIM_STYLE))
- Local $aResult = DllCall("user32.dll", "bool", "GetMenuInfo", "handle", $hMenu, "struct*", $tInfo)
- If @error Then Return SetError(@error, @extended, 0)
- Return SetExtended($aResult[0], $tInfo)
- EndFunc ;==>_GUICtrlMenu_GetMenuInfo
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_GetMenuStyle($hMenu)
- Local $tInfo = _GUICtrlMenu_GetMenuInfo($hMenu)
- Return DllStructGetData($tInfo, "Style")
- EndFunc ;==>_GUICtrlMenu_GetMenuStyle
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_GetSystemMenu($hWnd, $bRevert = False)
- Local $aResult = DllCall("user32.dll", "hwnd", "GetSystemMenu", "hwnd", $hWnd, "int", $bRevert)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aResult[0]
- EndFunc ;==>_GUICtrlMenu_GetSystemMenu
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_InsertMenuItem($hMenu, $iIndex, $sText, $iCmdID = 0, $hSubMenu = 0)
- Local $tMenu = DllStructCreate($tagMENUITEMINFO)
- DllStructSetData($tMenu, "Size", DllStructGetSize($tMenu))
- DllStructSetData($tMenu, "ID", $iCmdID)
- DllStructSetData($tMenu, "SubMenu", $hSubMenu)
- If $sText = "" Then
- DllStructSetData($tMenu, "Mask", $MIIM_FTYPE)
- DllStructSetData($tMenu, "Type", $MFT_SEPARATOR)
- Else
- DllStructSetData($tMenu, "Mask", BitOR($MIIM_ID, $MIIM_STRING, $MIIM_SUBMENU))
- DllStructSetData($tMenu, "Type", $MFT_STRING)
- Local $tText = DllStructCreate("wchar Text[" & StringLen($sText) + 1 & "]")
- DllStructSetData($tText, "Text", $sText)
- DllStructSetData($tMenu, "TypeData", DllStructGetPtr($tText))
- EndIf
- Local $aResult = DllCall("user32.dll", "bool", "InsertMenuItemW", "handle", $hMenu, "uint", $iIndex, "bool", True, "struct*", $tMenu)
- If @error Then Return SetError(@error, @extended, False)
- Return $aResult[0]
- EndFunc ;==>_GUICtrlMenu_InsertMenuItem
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_InsertMenuItemEx($hMenu, $iIndex, ByRef $tMenu, $bByPos = True)
- Local $aResult = DllCall("user32.dll", "bool", "InsertMenuItemW", "handle", $hMenu, "uint", $iIndex, "bool", $bByPos, "struct*", $tMenu)
- If @error Then Return SetError(@error, @extended, False)
- Return $aResult[0]
- EndFunc ;==>_GUICtrlMenu_InsertMenuItemEx
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_IsMenu($hMenu)
- Local $aResult = DllCall("user32.dll", "bool", "IsMenu", "handle", $hMenu)
- If @error Then Return SetError(@error, @extended, False)
- Return $aResult[0]
- EndFunc ;==>_GUICtrlMenu_IsMenu
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_LoadMenu($hInst, $sMenuName)
- Local $aResult = DllCall("user32.dll", "handle", "LoadMenuW", "handle", $hInst, "wstr", $sMenuName)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aResult[0]
- EndFunc ;==>_GUICtrlMenu_LoadMenu
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_MapAccelerator($hMenu, $sAccelKey)
- Local $sText
- Local $iCount = _GUICtrlMenu_GetItemCount($hMenu)
- For $iI = 0 To $iCount - 1
- $sText = _GUICtrlMenu_GetItemText($hMenu, $iI)
- If StringInStr($sText, "&" & $sAccelKey) > 0 Then Return $iI
- Next
- Return -1
- EndFunc ;==>_GUICtrlMenu_MapAccelerator
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_MenuItemFromPoint($hWnd, $hMenu, $iX = -1, $iY = -1)
- If $iX = -1 Then $iX = _WinAPI_GetMousePosX()
- If $iY = -1 Then $iY = _WinAPI_GetMousePosY()
- Local $aResult = DllCall("user32.dll", "int", "MenuItemFromPoint", "hwnd", $hWnd, "handle", $hMenu, "int", $iX, "int", $iY)
- If @error Then Return SetError(@error, @extended, -1)
- Return $aResult[0]
- EndFunc ;==>_GUICtrlMenu_MenuItemFromPoint
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_RemoveMenu($hMenu, $iItem, $bByPos = True)
- Local $iByPos = 0
- If $bByPos Then $iByPos = $MF_BYPOSITION
- Local $aResult = DllCall("user32.dll", "bool", "RemoveMenu", "handle", $hMenu, "uint", $iItem, "uint", $iByPos)
- If @error Then Return SetError(@error, @extended, False)
- If $aResult[0] = 0 Then Return SetError(10, 0, False)
- _GUICtrlMenu_DrawMenuBar(_GUICtrlMenu_FindParent($hMenu))
- Return True
- EndFunc ;==>_GUICtrlMenu_RemoveMenu
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_SetItemBitmaps($hMenu, $iItem, $hChecked, $hUnChecked, $bByPos = True)
- Local $iByPos = 0
- If $bByPos Then $iByPos = $MF_BYPOSITION
- Local $aResult = DllCall("user32.dll", "bool", "SetMenuItemBitmaps", "handle", $hMenu, "uint", $iItem, "uint", $iByPos, "handle", $hUnChecked, "handle", $hChecked)
- If @error Then Return SetError(@error, @extended, False)
- Return $aResult[0]
- EndFunc ;==>_GUICtrlMenu_SetItemBitmaps
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_SetItemBmp($hMenu, $iItem, $hBitmap, $bByPos = True)
- Local $tInfo = DllStructCreate($tagMENUITEMINFO)
- DllStructSetData($tInfo, "Size", DllStructGetSize($tInfo))
- DllStructSetData($tInfo, "Mask", $MIIM_BITMAP)
- DllStructSetData($tInfo, "BmpItem", $hBitmap)
- Return _GUICtrlMenu_SetItemInfo($hMenu, $iItem, $tInfo, $bByPos)
- EndFunc ;==>_GUICtrlMenu_SetItemBmp
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_SetItemBmpChecked($hMenu, $iItem, $hBitmap, $bByPos = True)
- Local $tInfo = _GUICtrlMenu_GetItemInfo($hMenu, $iItem, $bByPos)
- DllStructSetData($tInfo, "Mask", $MIIM_CHECKMARKS)
- DllStructSetData($tInfo, "BmpChecked", $hBitmap)
- Return _GUICtrlMenu_SetItemInfo($hMenu, $iItem, $tInfo, $bByPos)
- EndFunc ;==>_GUICtrlMenu_SetItemBmpChecked
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_SetItemBmpUnchecked($hMenu, $iItem, $hBitmap, $bByPos = True)
- Local $tInfo = _GUICtrlMenu_GetItemInfo($hMenu, $iItem, $bByPos)
- DllStructSetData($tInfo, "Mask", $MIIM_CHECKMARKS)
- DllStructSetData($tInfo, "BmpUnchecked", $hBitmap)
- Return _GUICtrlMenu_SetItemInfo($hMenu, $iItem, $tInfo, $bByPos)
- EndFunc ;==>_GUICtrlMenu_SetItemBmpUnchecked
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_SetItemChecked($hMenu, $iItem, $bState = True, $bByPos = True)
- Return _GUICtrlMenu_SetItemState($hMenu, $iItem, $MFS_CHECKED, $bState, $bByPos)
- EndFunc ;==>_GUICtrlMenu_SetItemChecked
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_SetItemData($hMenu, $iItem, $iData, $bByPos = True)
- Local $tInfo = DllStructCreate($tagMENUITEMINFO)
- DllStructSetData($tInfo, "Size", DllStructGetSize($tInfo))
- DllStructSetData($tInfo, "Mask", $MIIM_DATA)
- DllStructSetData($tInfo, "ItemData", $iData)
- Return _GUICtrlMenu_SetItemInfo($hMenu, $iItem, $tInfo, $bByPos)
- EndFunc ;==>_GUICtrlMenu_SetItemData
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_SetItemDefault($hMenu, $iItem, $bState = True, $bByPos = True)
- Return _GUICtrlMenu_SetItemState($hMenu, $iItem, $MFS_DEFAULT, $bState, $bByPos)
- EndFunc ;==>_GUICtrlMenu_SetItemDefault
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_SetItemDisabled($hMenu, $iItem, $bState = True, $bByPos = True)
- Return _GUICtrlMenu_SetItemState($hMenu, $iItem, BitOR($MFS_DISABLED, $MFS_GRAYED), $bState, $bByPos)
- EndFunc ;==>_GUICtrlMenu_SetItemDisabled
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_SetItemEnabled($hMenu, $iItem, $bState = True, $bByPos = True)
- Return _GUICtrlMenu_SetItemState($hMenu, $iItem, BitOR($MFS_DISABLED, $MFS_GRAYED), Not $bState, $bByPos)
- EndFunc ;==>_GUICtrlMenu_SetItemEnabled
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_SetItemGrayed($hMenu, $iItem, $bState = True, $bByPos = True)
- Return _GUICtrlMenu_SetItemState($hMenu, $iItem, $MFS_GRAYED, $bState, $bByPos)
- EndFunc ;==>_GUICtrlMenu_SetItemGrayed
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_SetItemHighlighted($hMenu, $iItem, $bState = True, $bByPos = True)
- Return _GUICtrlMenu_SetItemState($hMenu, $iItem, $MFS_HILITE, $bState, $bByPos)
- EndFunc ;==>_GUICtrlMenu_SetItemHighlighted
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_SetItemID($hMenu, $iItem, $iID, $bByPos = True)
- Local $tInfo = DllStructCreate($tagMENUITEMINFO)
- DllStructSetData($tInfo, "Size", DllStructGetSize($tInfo))
- DllStructSetData($tInfo, "Mask", $MIIM_ID)
- DllStructSetData($tInfo, "ID", $iID)
- Return _GUICtrlMenu_SetItemInfo($hMenu, $iItem, $tInfo, $bByPos)
- EndFunc ;==>_GUICtrlMenu_SetItemID
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_SetItemInfo($hMenu, $iItem, ByRef $tInfo, $bByPos = True)
- DllStructSetData($tInfo, "Size", DllStructGetSize($tInfo))
- Local $aResult = DllCall("user32.dll", "bool", "SetMenuItemInfoW", "handle", $hMenu, "uint", $iItem, "bool", $bByPos, "struct*", $tInfo)
- If @error Then Return SetError(@error, @extended, False)
- Return $aResult[0]
- EndFunc ;==>_GUICtrlMenu_SetItemInfo
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_SetItemState($hMenu, $iItem, $iState, $bState = True, $bByPos = True)
- Local $iFlag = _GUICtrlMenu_GetItemStateEx($hMenu, $iItem, $bByPos)
- If $bState Then
- $iState = BitOR($iFlag, $iState)
- Else
- $iState = BitAND($iFlag, BitNOT($iState))
- EndIf
- Local $tInfo = DllStructCreate($tagMENUITEMINFO)
- DllStructSetData($tInfo, "Size", DllStructGetSize($tInfo))
- DllStructSetData($tInfo, "Mask", $MIIM_STATE)
- DllStructSetData($tInfo, "State", $iState)
- Return _GUICtrlMenu_SetItemInfo($hMenu, $iItem, $tInfo, $bByPos)
- EndFunc ;==>_GUICtrlMenu_SetItemState
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_SetItemSubMenu($hMenu, $iItem, $hSubMenu, $bByPos = True)
- Local $tInfo = DllStructCreate($tagMENUITEMINFO)
- DllStructSetData($tInfo, "Size", DllStructGetSize($tInfo))
- DllStructSetData($tInfo, "Mask", $MIIM_SUBMENU)
- DllStructSetData($tInfo, "SubMenu", $hSubMenu)
- Return _GUICtrlMenu_SetItemInfo($hMenu, $iItem, $tInfo, $bByPos)
- EndFunc ;==>_GUICtrlMenu_SetItemSubMenu
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_SetItemText($hMenu, $iItem, $sText, $bByPos = True)
- Local $tBuffer = DllStructCreate("wchar Text[" & StringLen($sText) + 1 & "]")
- DllStructSetData($tBuffer, "Text", $sText)
- Local $tInfo = DllStructCreate($tagMENUITEMINFO)
- DllStructSetData($tInfo, "Size", DllStructGetSize($tInfo))
- DllStructSetData($tInfo, "Mask", $MIIM_STRING)
- DllStructSetData($tInfo, "TypeData", DllStructGetPtr($tBuffer))
- Return _GUICtrlMenu_SetItemInfo($hMenu, $iItem, $tInfo, $bByPos)
- EndFunc ;==>_GUICtrlMenu_SetItemText
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_SetItemType($hMenu, $iItem, $iType, $bByPos = True)
- Local $tInfo = DllStructCreate($tagMENUITEMINFO)
- DllStructSetData($tInfo, "Size", DllStructGetSize($tInfo))
- DllStructSetData($tInfo, "Mask", $MIIM_FTYPE)
- DllStructSetData($tInfo, "Type", $iType)
- Return _GUICtrlMenu_SetItemInfo($hMenu, $iItem, $tInfo, $bByPos)
- EndFunc ;==>_GUICtrlMenu_SetItemType
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_SetMenu($hWnd, $hMenu)
- Local $aResult = DllCall("user32.dll", "bool", "SetMenu", "hwnd", $hWnd, "handle", $hMenu)
- If @error Then Return SetError(@error, @extended, False)
- Return $aResult[0]
- EndFunc ;==>_GUICtrlMenu_SetMenu
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_SetMenuBackground($hMenu, $hBrush)
- Local $tInfo = DllStructCreate($tagMENUINFO)
- DllStructSetData($tInfo, "Mask", $MIM_BACKGROUND)
- DllStructSetData($tInfo, "hBack", $hBrush)
- Return _GUICtrlMenu_SetMenuInfo($hMenu, $tInfo)
- EndFunc ;==>_GUICtrlMenu_SetMenuBackground
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_SetMenuContextHelpID($hMenu, $iHelpID)
- Local $tInfo = DllStructCreate($tagMENUINFO)
- DllStructSetData($tInfo, "Mask", $MIM_HELPID)
- DllStructSetData($tInfo, "ContextHelpID", $iHelpID)
- Return _GUICtrlMenu_SetMenuInfo($hMenu, $tInfo)
- EndFunc ;==>_GUICtrlMenu_SetMenuContextHelpID
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_SetMenuData($hMenu, $iData)
- Local $tInfo = DllStructCreate($tagMENUINFO)
- DllStructSetData($tInfo, "Mask", $MIM_MENUDATA)
- DllStructSetData($tInfo, "MenuData", $iData)
- Return _GUICtrlMenu_SetMenuInfo($hMenu, $tInfo)
- EndFunc ;==>_GUICtrlMenu_SetMenuData
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_SetMenuDefaultItem($hMenu, $iItem, $bByPos = True)
- Local $aResult = DllCall("user32.dll", "bool", "SetMenuDefaultItem", "handle", $hMenu, "uint", $iItem, "uint", $bByPos)
- If @error Then Return SetError(@error, @extended, False)
- Return $aResult[0]
- EndFunc ;==>_GUICtrlMenu_SetMenuDefaultItem
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_SetMenuHeight($hMenu, $iHeight)
- Local $tInfo = DllStructCreate($tagMENUINFO)
- DllStructSetData($tInfo, "Mask", $MIM_MAXHEIGHT)
- DllStructSetData($tInfo, "YMax", $iHeight)
- Return _GUICtrlMenu_SetMenuInfo($hMenu, $tInfo)
- EndFunc ;==>_GUICtrlMenu_SetMenuHeight
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_SetMenuInfo($hMenu, ByRef $tInfo)
- DllStructSetData($tInfo, "Size", DllStructGetSize($tInfo))
- Local $aResult = DllCall("user32.dll", "bool", "SetMenuInfo", "handle", $hMenu, "struct*", $tInfo)
- If @error Then Return SetError(@error, @extended, False)
- Return $aResult[0]
- EndFunc ;==>_GUICtrlMenu_SetMenuInfo
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_SetMenuStyle($hMenu, $iStyle)
- Local $tInfo = DllStructCreate($tagMENUINFO)
- DllStructSetData($tInfo, "Mask", $MIM_STYLE)
- DllStructSetData($tInfo, "Style", $iStyle)
- Return _GUICtrlMenu_SetMenuInfo($hMenu, $tInfo)
- EndFunc ;==>_GUICtrlMenu_SetMenuStyle
- ; #FUNCTION# ====================================================================================================================
- ; Author ........: Paul Campbell (PaulIA)
- ; Modified.......:
- ; ===============================================================================================================================
- Func _GUICtrlMenu_TrackPopupMenu($hMenu, $hWnd, $iX = -1, $iY = -1, $iAlignX = 1, $iAlignY = 1, $iNotify = 0, $iButtons = 0)
- If $iX = -1 Then $iX = _WinAPI_GetMousePosX()
- If $iY = -1 Then $iY = _WinAPI_GetMousePosY()
- Local $iFlags = 0
- Switch $iAlignX
- Case 1
- $iFlags = BitOR($iFlags, $TPM_LEFTALIGN)
- Case 2
- $iFlags = BitOR($iFlags, $TPM_RIGHTALIGN)
- Case Else
- $iFlags = BitOR($iFlags, $TPM_CENTERALIGN)
- EndSwitch
- Switch $iAlignY
- Case 1
- $iFlags = BitOR($iFlags, $TPM_TOPALIGN)
- Case 2
- $iFlags = BitOR($iFlags, $TPM_VCENTERALIGN)
- Case Else
- $iFlags = BitOR($iFlags, $TPM_BOTTOMALIGN)
- EndSwitch
- If BitAND($iNotify, 1) <> 0 Then $iFlags = BitOR($iFlags, $TPM_NONOTIFY)
- If BitAND($iNotify, 2) <> 0 Then $iFlags = BitOR($iFlags, $TPM_RETURNCMD)
- Switch $iButtons
- Case 1
- $iFlags = BitOR($iFlags, $TPM_RIGHTBUTTON)
- Case Else
- $iFlags = BitOR($iFlags, $TPM_LEFTBUTTON)
- EndSwitch
- Local $aResult = DllCall("user32.dll", "bool", "TrackPopupMenu", "handle", $hMenu, "uint", $iFlags, "int", $iX, "int", $iY, "int", 0, "hwnd", $hWnd, "ptr", 0)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aResult[0]
- EndFunc ;==>_GUICtrlMenu_TrackPopupMenu
|