Hallo,
ist es möglich das man die Hintergrundfarbe eines Popupmenüs zu ändern?
Ich habe leider nichts in der Hilfe finden können....
wenn es nicht möglich sein sollte ist es zwar schade aber kein Beinbruch....
CreatePopupMenu() Farbig
- Tsuki-Namida
- Beiträge: 633
- Registriert: 17.11.2005 13:27
- Kontaktdaten:
Re: CreatePopupMenu() Farbig
http://www.rsbasic.de/index.php?option= ... &Itemid=59
Unter XP funktioniert das problemlos.
Unter Win7 zwar auch, aber er färbt wie ich sehe nicht komplett ein.
Unter XP funktioniert das problemlos.
Unter Win7 zwar auch, aber er färbt wie ich sehe nicht komplett ein.
Re: CreatePopupMenu() Farbig
Für die die das mit Windows 7 sehen wollen ...


-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Re: CreatePopupMenu() Farbig
ganz ehrlich, ich würde das so oder so einfach lassen.
das Farbschema ist nun mal Sache des Users, außer man bietet eine stilvoll komplett geskinnte Anwendung an, wie z.B. Winamp.
Aber einfach nur an einer handvoll Farben rumpfuschen, das passt vielleicht zu deinem Farbschema,
aber beim Kunden kanns aussehen wie

Augenkrebs
das Farbschema ist nun mal Sache des Users, außer man bietet eine stilvoll komplett geskinnte Anwendung an, wie z.B. Winamp.
Aber einfach nur an einer handvoll Farben rumpfuschen, das passt vielleicht zu deinem Farbschema,
aber beim Kunden kanns aussehen wie

Augenkrebs
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- Tsuki-Namida
- Beiträge: 633
- Registriert: 17.11.2005 13:27
- Kontaktdaten:
Re: CreatePopupMenu() Farbig
Hmmm es funktioniert fast super
Danke
Ich habe den Code kopiert und mit Erfolg getestet.
Als ich es in mein Projekt eingebaut habe ging es nicht mehr.... Ich habe alles überprüft und kein Fehler gefunden...
Als ich einen Code Ausschnitt zum Testen vorbereitet habe um ihn hier zu testen ging es plötzlich mit der Hintergrundfarbe
das Einzige was ich an den Test Code geändert habe habe ich nur das Menü was ich für ein Systrayicon gedacht habe auf das Fenster gelegt.
hier ist der umgebaute Test Code wo es funktioniert.... Die anfragen, die ich im eigentlichen Quelltext genutzt habe habe ich auskommentiert und für den Test Geändert...

Ich habe den Code kopiert und mit Erfolg getestet.
Als ich es in mein Projekt eingebaut habe ging es nicht mehr.... Ich habe alles überprüft und kein Fehler gefunden...
Als ich einen Code Ausschnitt zum Testen vorbereitet habe um ihn hier zu testen ging es plötzlich mit der Hintergrundfarbe
das Einzige was ich an den Test Code geändert habe habe ich nur das Menü was ich für ein Systrayicon gedacht habe auf das Fenster gelegt.
hier ist der umgebaute Test Code wo es funktioniert.... Die anfragen, die ich im eigentlichen Quelltext genutzt habe habe ich auskommentiert und für den Test Geändert...
Code: Alles auswählen
Enumeration
#SettingWindow
#ServerList
#ListAdd
#ListEdit
#ListInfo
#ListRemov
#ListPrio
#ListZeit
#ListOff
#ListOn
#ListTimeout
#ListOK
#SystrayIcon
#SysPopup
EndEnumeration
#MIM_BACKGROUND=2
Structure MENUINFO
cbSize.l
fMask.l
dwStyle.l
cyMax.l
hbrBack.l
dwContextHelpID.l
dwMenuData.l
EndStructure
MI.MENUINFO\cbSize=SizeOf(MENUINFO)
hBrush=CreateSolidBrush_(RGB($CE,$DE,$F3))
MI\hbrBack=hBrush
MI\fMask=#MIM_BACKGROUND
Procedure.s Setting(String$)
;Dummy Procedure zum Testen
EndProcedure
If Val(Setting("SettingFentserX")) = 0 Or Val(Setting("SettingFentserY")) = 0
OpenWindow(#SettingWindow,0,0,500,450,"Init Server",#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget)
Else
OpenWindow(#SettingWindow,Val(Setting("SettingFensterX")),Val(Setting("SettingFensterY")),500,450,"Init Server",#PB_Window_MinimizeGadget)
EndIf
If CreateGadgetList(WindowID(#SettingWindow))
ListIconGadget(#ServerList,5,39,490,250,"Name",170,#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect)
AddGadgetColumn(#ServerList,1,"Adresse/IP",170)
AddGadgetColumn(#ServerList,2,"Port",50)
AddGadgetColumn(#ServerList,3,"Server",45)
AddGadgetColumn(#ServerList,4,"Status",50)
ButtonGadget(#ListAdd,5,5,100,24,"Hinzufügen")
ButtonGadget(#ListEdit,105,5,100,24,"Bearbeiten")
ButtonGadget(#ListInfo,205,5,100,24,"Information")
ButtonGadget(#ListRemov,395,5,100,24,"Löschen")
Frame3DGadget(#PB_Any,0,295,250,156,"Aktualisierungs Einstellung")
TextGadget(#PB_Any,5,310,235,52,"Je häufiger der Status der Eingetragenen Server überprüft wird, um so mehr wird der Processeor belastet. Also vorsichtig verwenden!")
TextGadget(#PB_Any,15,370,40,18,"Priorität:")
ComboBoxGadget(#ListPrio,57,369,110,20)
AddGadgetItem(#ListPrio,-1,"Höher als Normal")
AddGadgetItem(#ListPrio,-1,"Normal")
AddGadgetItem(#ListPrio,-1,"Nidrig")
AddGadgetItem(#ListPrio,-1,"Sehr Nidrig")
SetGadgetText(#ListPrio,Setting("Priorität"))
TextGadget(#PB_Any,15,393,60,18,"Zeitabstand:")
StringGadget(#ListZeit,77,392,30,20,Setting("Zeit"),#PB_String_Numeric)
TextGadget(#PB_Any,109,393,30,18,"Min")
Frame3DGadget(#PB_Any,248,295,240,70,"Benachrichtigung")
CheckBoxGadget(#ListOff,265,322,13,13,"")
TextGadget(#PB_Any,280,320,80,18,"Server Offline")
SetGadgetState(#ListOff,Val(Setting("OfflineMSG")))
CheckBoxGadget(#ListOn,265,342,13,13,"")
TextGadget(#PB_Any,280,340,80,18,"Server Online")
SetGadgetState(#ListOn,Val(Setting("OnlineMSG")))
TextGadget(#PB_Any,360,320,120,18,"Benarichtigung Timeout:")
StringGadget(#ListTimeout,360,340,30,20,Setting("Timeout"),#PB_String_Numeric)
TextGadget(#PB_Any,395,342,25,18,"Sec.")
TextGadget(#PB_Any,255,375,240,26,"Hinzugefügte oder Bearbeitete Server werden automatisch gespeichert.")
ButtonGadget(#ListOK,395,421,100,24,"Speichern",Image1)
; InfLesen()
; ListeAktualisieren()
AddSysTrayIcon(#SystrayIcon,WindowID(#SettingWindow),LoadImage(0,Icon$))
SysTrayIconToolTip(#SystrayIcon,"Init Server")
CreatePopupMenu(#SysPopup)
MenuItem(1,"Einstellung Ein-/Aus-Blenden")
MenuItem(2,"Alle Server Sofort Überprüfen")
MenuItem(3,"Info")
MenuItem(4,"Beenden")
Else
MessageRequester("Fehler","Es ist ein Fehleraufgetreten beim öffnen des Einstellungsfenster! Bitte Starten Sie die Anwendung Neu.")
End
EndIf
; ServerTest(0)
SetMenuInfo_(MenuID(#SysPopup),MI)
SetMenuInfo_(GetSubMenu_(MenuID(#SysPopup),5),MI)
Repeat
Event = WaitWindowEvent()
WindowID = EventWindow()
GadgetID = EventGadget()
EventType = EventType()
Select WaitWindowEvent()
Case #PB_Event_Menu
Select EventMenu()
Case 1
If Hinde = 0
HideWindow(#SettingWindow,1)
Hinde = 1
ElseIf Hinde = 1
HideWindow(#SettingWindow,0)
Hinde = 0
EndIf
Case 2
Case 3
Case 4
End
EndSelect
Case #PB_Event_CloseWindow
Quit = 1
EndSelect
If Event = #PB_Event_Gadget
If GadgetID = #ListAdd
DisableWindow(#SettingWindow,1)
; AddServerWindow("","",0,"",0)
ElseIf GadgetID = #ListEdit
If GetGadgetState(#ServerList) <> -1
; EditServer(GetGadgetText(#ServerList))
Else
MessageRequester("Fehler","Bitte wählen Sie einen Server aus.")
EndIf
ElseIf GadgetID = #ListInfo
If GetGadgetState(#ServerList) <> -1
DisableWindow(#SettingWindow,1)
; ServerInfo(GetGadgetText(#ServerList))
Else
MessageRequester("Fehler","Bitte wählen Sie einen Server aus.")
EndIf
ElseIf GadgetID = #ListRemov
If GetGadgetState(#ServerList) <> -1
If MessageRequester("Frage","Möchten Sie wirklich den Server "+Chr(34)+GetGadgetText(#ServerList)+Chr(34)+" Löschen?",#PB_MessageRequester_YesNo) = #PB_MessageRequester_Yes
; DelServer(GetGadgetText(#ServerList))
EndIf
Else
MessageRequester("Fehler","Bitte wählen Sie einen Server aus.")
EndIf
ElseIf GadgetID = #ListOK
; SaveServer()
; SaveSetting()
EndIf
ElseIf GetAsyncKeyState_(#VK_RBUTTON) ;Event = #PB_Event_SysTray; And GetAsyncKeyState_(#VK_RBUTTON)
DisplayPopupMenu(#SysPopup, WindowID(#SettingWindow))
ElseIf Event = #PB_Event_CloseWindow
HideWindow(#SettingWindow,1)
Hinde = 1
EndIf
ForEver
