Quantcast
Channel: AutoIt v3 - General Help and Support
Viewing all articles
Browse latest Browse all 12506

Color menu

$
0
0
I'm aware of ModernMenu. I only want to change the color.

[ autoit ]         
#include <GuiMenu.au3> Local $iMenuItem[1] Local $tPoint, $aPos, $a_iniList, $ContMenu $hGui = GUICreate('My Program', 250, 260) $iCombo = GUICtrlCreateButton('v', 220, 10, 22, 22) GUISetState() While 1     Switch GUIGetMsg()         Case $iCombo                 $ContMenu = GUICtrlCreateContextMenu($iCombo)                 SetMenuColor(-1, 0xAAFFFF)                 $a_iniList = StringSplit('item1|item2|item3|item4', '|')                 ReDim $iMenuItem[$a_iniList[0] + 1]                 $iMenuItem[0] = $a_iniList[0]                 For $i = 1 To $a_iniList[0]                     $iMenuItem[$i] = GUICtrlCreateMenuItem($a_iniList[$i], $ContMenu)                 Next                 $aPos = ControlGetPos($hGui, "", $iCombo)                 $tPoint = DllStructCreate("int X;int Y")                 DllStructSetData($tPoint, "X", $aPos[0] + $aPos[2])                 DllStructSetData($tPoint, "Y", $aPos[1] + $aPos[3])                 _WinAPI_ClientToScreen($hGui, $tPoint)                 _GUICtrlMenu_TrackPopupMenu(GUICtrlGetHandle($ContMenu), $hGui, DllStructGetData($tPoint, "X"), DllStructGetData($tPoint, "Y"), 2)                 $tPoint = 0                 GUICtrlDelete($ContMenu)         Case -3             Exit     EndSwitch WEnd Func SetMenuColor($nMenuID, $nColor)     Local $tInfo     $tInfo = DllStructCreate($tagMENUINFO)     DllStructSetData($tInfo, 1, DllStructGetSize($tInfo))     DllStructSetData($tInfo, 2, BitOR($MIM_APPLYTOSUBMENUS, $MIM_BACKGROUND))     DllStructSetData($tInfo, 5, _WinAPI_CreateSolidBrush($nColor))     _GUICtrlMenu_SetMenuInfo(GUICtrlGetHandle($nMenuID), $tInfo) EndFunc   ;==>SetMenuColor

Viewing all articles
Browse latest Browse all 12506

Trending Articles