ToolBar Hintergrundfarbe
ToolBar Hintergrundfarbe
wie bekomme ich eine ToolBar eingefärbt so dass
sie auch noch funktioniert?
wenn ich sie einem MDI zuweiße kann ich die farbe ohne
probleme ändern, nur werden die IDs der Buttons durch EventMenu() nichtmehr
zurückgegeben.
kennt jemand eine Lösung?
sie auch noch funktioniert?
wenn ich sie einem MDI zuweiße kann ich die farbe ohne
probleme ändern, nur werden die IDs der Buttons durch EventMenu() nichtmehr
zurückgegeben.
kennt jemand eine Lösung?
Re: ToolBar Hintergrundfarbe
Vielleicht in einem extra Fenster: http://purebasic.fr/german/viewtopic.ph ... 44#p246144
Re: ToolBar Hintergrundfarbe
ah danke
. ist schon eine bessere Lösung als durch das MDI.. da eine
ToolBar an sich transparent ist... gibt es auch eine Möglichkeit ein Image
als Hintergrund festzulegen?
ToolBar an sich transparent ist... gibt es auch eine Möglichkeit ein Image
als Hintergrund festzulegen?
Re: ToolBar Hintergrundfarbe
Ich hab zwar den folgenden Code noch nicht in Verbindung einer ToolBar ausprobiert, aber vielleicht klappt es: http://www.rsbasic.de/aktualisierung/wi ... 3%BCgen.pb
Re: ToolBar Hintergrundfarbe
Doch funktioniert:
Code: Alles auswählen
EnableExplicit
Define EventID
Define bgimage
Define hBrush
Define hwndTB
bgimage = LoadImage(#PB_Any,"C:\Windows\System32\oobe\background.bmp");Beispiel-Pfad überprüfen und ggf. anpassen
If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If OpenWindow(1,50,50,200,100,"",#WS_CHILD,WindowID(0))
hBrush = CreatePatternBrush_(ImageID(bgimage))
SetClassLong_(WindowID(1), #GCL_HBRBACKGROUND, hBrush)
InvalidateRect_(WindowID(1), #Null, #True)
hwndTB = CreateToolBar(0,WindowID(1))
ToolBarStandardButton(0,#PB_ToolBarIcon_New)
ToolBarStandardButton(1,#PB_ToolBarIcon_Open)
ToolBarStandardButton(2,#PB_ToolBarIcon_Save)
SendMessage_(hwndTB,#TB_SETSTYLE,0,SendMessage_(hwndTB,#TB_GETSTYLE,0,0) | #CCS_NODIVIDER)
EndIf
Repeat
EventID=WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
End
EndIf
ForEver
EndIfRe: ToolBar Hintergrundfarbe
Funktioniert aber nicht richtig. Wenn man mit dem Mauszeiger einfach von links nach rechts über die Toolbarbuttons fährt, entsteht dort ein Mosaikeffekt des Hintergrunds. Bei großen, einfarbigen Flächen in der Hintergrundgrafik tolerierbar, aber nicht bei detailreichen Grafiken. Sieht dann gleich unprofessionell aus, also besser sein lassen oder gut darauf Acht geben.
Gruß, Frank
Re: ToolBar Hintergrundfarbe
Oh, das ist mir nicht aufgefallen.
Besser so?
Besser so?
Code: Alles auswählen
EnableExplicit
Define EventID
Define bgimage
Define hBrush
Global hwndTB
UsePNGImageDecoder()
bgimage = LoadImage(#PB_Any,"C:\[...]\Testheader.png");Beispiel-Pfad überprüfen und ggf. anpassen
Procedure WindowCallback(hWnd,uMsg,wParam,lParam)
Protected *notify.NMTOOLBAR
Select uMsg
Case #WM_NOTIFY
*notify = lparam
If *notify\hdr\code = -713
InvalidateRect_(hwndTB,0,#True)
EndIf
EndSelect
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If OpenWindow(1,50,50,200,100,"",#WS_CHILD,WindowID(0))
hBrush = CreatePatternBrush_(ImageID(bgimage))
SetClassLong_(WindowID(1), #GCL_HBRBACKGROUND, hBrush)
InvalidateRect_(WindowID(1), #Null, #True)
hwndTB = CreateToolBar(0,WindowID(1))
ToolBarStandardButton(0,#PB_ToolBarIcon_New)
ToolBarStandardButton(1,#PB_ToolBarIcon_Open)
ToolBarStandardButton(2,#PB_ToolBarIcon_Save)
SendMessage_(hwndTB,#TB_SETSTYLE,0,SendMessage_(hwndTB,#TB_GETSTYLE,0,0) | #CCS_NODIVIDER)
SetWindowCallback(@WindowCallback())
EndIf
Repeat
EventID=WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
End
EndIf
ForEver
EndIfRe: ToolBar Hintergrundfarbe
Jetzt ist es 'ne saubere Sache, mit der Notify zusätzlich geht's perfekt. 
#TBN_HOTITEMCHANGE = $FFFFFD37
#TBN_HOTITEMCHANGE = $FFFFFD37
Gruß, Frank
Re: ToolBar Hintergrundfarbe
Danke fürs Heraussuchen der API-Konstante. 

