Funktionsreferenz

TrayItemGetHandle

Gibt den Handle für ein Traymenü bzw. einen Eintrag davon zurück.

TrayItemGetHandle ( controlID )

 

Parameter

ControlID Die Control-Identifikationsnummer (Control-ID), wie von einer TrayCreateItem oder TrayCreateMenu Funktion zurückgegeben wurde.

 

Rückgabewert

Erfolg: Gibt den Handle der gewünschten Control-ID zurück.
Fehler: Gibt 0 zurück.

 

Bemerkungen

Um den Handle des Traymenüs selbst zu erhalten, ist als Control-ID '0' zu verwenden.

 

Verwandte Funktionen

TrayItemGetState, TrayItemGetText

 

Beispiel


#include <Constants.au3>

Opt("TrayMenuMode", 1) ; Blendet das Standard Tray-Kontextmenü aus

Global Const $MIM_APPLYTOSUBMENUS = 0x80000000
Global Const $MIM_BACKGROUND = 0x00000002

TraySetIcon("shell32.dll", 21)
TraySetToolTip("Hier ist ein einfaches kleines Beispiel, das zeigt, dass farbige Tray-Menüs" & @LF & "unter Windows 2000 und höher leicht möglich sind.")

$OptionsMenu = TrayCreateMenu("Optionen")
$OnTopItem = TrayCreateItem("Immer im Vordergrund", $OptionsMenu)
TrayItemSetState(-1, $TRAY_CHECKED)
$RepeatItem = TrayCreateItem("Immer wiederholen", $OptionsMenu)
TrayCreateItem("")
$AboutItem = TrayCreateItem("Über")
TrayCreateItem("")
$ExitItem = TrayCreateItem("Beispiel beenden")

SetMenuColor(0, 0xEEBB99) ; BGR Farbwert, '0' bedeutet, dass das Tray Kontext-Menü dies selbst regelt
SetMenuColor($OptionsMenu, 0x66BB99); BGR Farbwert

While 1
    $Msg = TrayGetMsg()

    Switch $Msg
        Case $ExitItem
            ExitLoop

        Case $AboutItem
            MsgBox(64, "Über...", "Farbiges Tray-Menü Beispiel")
    EndSwitch
WEnd

Exit


; Wendet die Farbe auf das Menü an
Func SetMenuColor($nMenuID, $nColor)
    $hMenu = TrayItemGetHandle($nMenuID) ; Holt den internen Menü-Handle

    $hBrush = DllCall("gdi32.dll", "hwnd", "CreateSolidBrush", "int", $nColor)
    $hBrush = $hBrush[0]

    Local $stMenuInfo = DllStructCreate("dword;dword;dword;uint;dword;dword;ptr")
    DllStructSetData($stMenuInfo, 1, DllStructGetSize($stMenuInfo))
    DllStructSetData($stMenuInfo, 2, BitOR($MIM_APPLYTOSUBMENUS, $MIM_BACKGROUND))
    DllStructSetData($stMenuInfo, 5, $hBrush)

    DllCall("user32.dll", "int", "SetMenuInfo", "hwnd", $hMenu, "ptr", DllStructGetPtr($stMenuInfo))
EndFunc   ;==>SetMenuColor