- Offizieller Beitrag
Hi .
Gibt es eine Möglichkeit die Farbe des Menüs (GuiCtrlCreateMenu) zu ändern ? Mit GuiCtrlSetColor oder GuiCtrlSetBkColor geht es ja nicht .
Hi .
Gibt es eine Möglichkeit die Farbe des Menüs (GuiCtrlCreateMenu) zu ändern ? Mit GuiCtrlSetColor oder GuiCtrlSetBkColor geht es ja nicht .
hi raupi.
vllt. hilft das: http://www.autoitscript.com/forum/index.php?showtopic=20967
das hat ähnlichkeit mit dem traymenu von visual basic C#
ModernMenu kenne ich schon. Da kann man aber nur die Menüs und Untermenüs einfärben. Die Menüzeile selber aber nicht .
Dann bleibt nur Eigenbau aus Rebar und Popupmenüs.
Dann werd ich das mal versuchen zu Scripten. Wenn was gescheites dabei rauskommt, werd ich es in Script-Forum posten.Danke trotzdem für die Hilfe . Damit hat sich der Thread erledigt .
Wenn es Dich nicht stört, dass das Systemweit (für alle Fenster) passiert, dann könntest Du das auch so machen:
#include<WinAPI.au3>
#include<WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
; ===============================================================================
; Farben für das Menü (Systemweit!)
Global $aElements[3] = [$COLOR_MENUBAR, $COLOR_MENU, $COLOR_MENUHILIGHT]
Global $aColors[3] = [0x4444FF, 0x4444FF, 0x44FFFF] ; Farben hier im BGR-Format!
Global $aSaveColors[3]
$aSaveColors[0] = _WinAPI_GetSysColor($COLOR_MENUBAR) ; bisherige Farben sichern
$aSaveColors[1] = _WinAPI_GetSysColor($COLOR_MENU)
$aSaveColors[2] = _WinAPI_GetSysColor($COLOR_MENUHILIGHT)
_WinAPI_SetSysColors($aElements, $aColors) ; neue Farben setzen
; ===============================================================================
Global $defaultstatus = "Ready", $status, $filemenu, $fileitem
Global $helpmenu, $saveitem, $infoitem, $exititem, $recentfilesmenu
Global $separator1, $viewmenu, $viewstatusitem, $okbutton, $cancelbutton
Global $statuslabel, $msg, $file
GUICreate("My GUI menu", 300, 200)
$filemenu = GUICtrlCreateMenu("&File")
$fileitem = GUICtrlCreateMenuItem("Open", $filemenu)
GUICtrlSetState(-1, $GUI_DEFBUTTON)
$helpmenu = GUICtrlCreateMenu("?")
$saveitem = GUICtrlCreateMenuItem("Save", $filemenu)
GUICtrlSetState(-1, $GUI_DISABLE)
$infoitem = GUICtrlCreateMenuItem("Info", $helpmenu)
$exititem = GUICtrlCreateMenuItem("Exit", $filemenu)
$recentfilesmenu = GUICtrlCreateMenu("Recent Files", $filemenu, 1)
$separator1 = GUICtrlCreateMenuItem("", $filemenu, 2)
$viewmenu = GUICtrlCreateMenu("View", -1, 1)
$viewstatusitem = GUICtrlCreateMenuItem("Statusbar", $viewmenu)
GUICtrlSetState(-1, $GUI_CHECKED)
$okbutton = GUICtrlCreateButton("OK", 50, 130, 70, 20)
GUICtrlSetState(-1, $GUI_FOCUS)
$cancelbutton = GUICtrlCreateButton("Cancel", 180, 130, 70, 20)
$statuslabel = GUICtrlCreateLabel($defaultstatus, 0, 165, 300, 16, BitOR($SS_SIMPLE, $SS_SUNKEN))
GUISetState()
While 1
$msg = GUIGetMsg()
If $msg = $fileitem Then
$file = FileOpenDialog("Choose file...", @TempDir, "All (*.*)")
If @error <> 1 Then GUICtrlCreateMenuItem($file, $recentfilesmenu)
EndIf
If $msg = $viewstatusitem Then
If BitAND(GUICtrlRead($viewstatusitem), $GUI_CHECKED) = $GUI_CHECKED Then
GUICtrlSetState($viewstatusitem, $GUI_UNCHECKED)
GUICtrlSetState($statuslabel, $GUI_HIDE)
Else
GUICtrlSetState($viewstatusitem, $GUI_CHECKED)
GUICtrlSetState($statuslabel, $GUI_SHOW)
EndIf
EndIf
If $msg = $GUI_EVENT_CLOSE Or $msg = $cancelbutton Or $msg = $exititem Then ExitLoop
If $msg = $infoitem Then MsgBox(0, "Info", "Only a test...")
WEnd
GUIDelete()
; ===============================================================================
_WinAPI_SetSysColors($aElements, $aSaveColors) ; alte Farben wiederherstellen
; ===============================================================================
Exit
Ich habe die wichtigen Teile mal kommentiert. Der Rest ist aus einem Hilfe-Beispiel.
Danke Oscar. Aber ich wollte die Menüfarben nur in der Scriptgui ändern.