Code: Select all
Procedure SetGadgetColor(object,r,g,b)
hBrush.l=CreateSolidBrush_(RGB(r,g,b))
SetClassLong_(object,#GCL_HBRBACKGROUND,hBrush)
InvalidateRect_(object,0,#TRUE)
EndProcedure
Code: Select all
Procedure SetGadgetColor(object,r,g,b)
hBrush.l=CreateSolidBrush_(RGB(r,g,b))
SetClassLong_(object,#GCL_HBRBACKGROUND,hBrush)
InvalidateRect_(object,0,#TRUE)
EndProcedure
Code: Select all
blueBrush.l = CreateSolidBrush_(RGB(0, 0, 255))
greenBrush.l = CreateSolidBrush_(RGB(0, 255, 0))
Global blueBrush, greenBrush
Procedure myWindowCallback(hwnd, msg, wparam, lparam)
result = #PB_ProcessPureBasicEvents
Select msg
Case #WM_ERASEBKGND
container.RECT
If IsGadget(0) And hwnd = GadgetID(0)
container\left = 0
container\top = 0
container\right = GadgetWidth(0)
container\bottom = GadgetHeight(0)
FillRect_(wparam, container, blueBrush)
result = 1
EndIf
If IsGadget(2) And hwnd = GadgetID(2)
container\left = 0
container\top = 0
container\right = GadgetWidth(2)
container\bottom = GadgetHeight(2)
FillRect_(wparam, container, greenBrush)
result = 1
EndIf
EndSelect
ProcedureReturn result
EndProcedure
If OpenWindow(0, 0, 0, 400, 230, #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_SizeGadget,"Colored ContainerGadgets") And CreateGadgetList(WindowID(0))
SetWindowCallback(@myWindowCallback())
ContainerGadget (0, 10, 10, 380, 100)
; --> This sets a #Null brush for all ContainerGadgets
SetClassLong_(GadgetID(0), #GCL_HBRBACKGROUND, 0)
ButtonGadget(1, 90, 40, 180, 20,"Button in Blue Container")
CloseGadgetList()
ContainerGadget (2, 10, 120, 380, 100)
ButtonGadget(3, 90, 40, 180, 20,"Button in Green Container")
CloseGadgetList()
Repeat
event = WaitWindowEvent()
Select event
Case #PB_EventSizeWindow
ResizeGadget(0, -1, -1, WindowWidth()-20, -1)
ResizeGadget(2, -1, -1, WindowWidth()-20, -1)
EndSelect
Until event = #PB_Event_CloseWindow
DeleteObject_(blueBrush)
DeleteObject_(greenBrush)
EndIf
Code: Select all
Global blueBrush
Global greenBrush
blueBrush=CreateSolidBrush_(RGB(0,0,255))
greenBrush=CreateSolidBrush_(RGB(0,255,0))
Procedure myWindowCallback(hwnd, msg, wparam, lparam)
result=#PB_ProcessPureBasicEvents
Select msg
Case #WM_ERASEBKGND
container.RECT
Select hwnd
Case GadgetID(0)
container\right=GadgetWidth(0)
container\bottom=GadgetHeight(0)
FillRect_(wparam,container,blueBrush)
result=1
Case GadgetID(2)
container\right=GadgetWidth(2)
container\bottom=GadgetHeight(2)
FillRect_(wparam,container,greenBrush)
result=1
EndSelect
EndSelect
ProcedureReturn result
EndProcedure
win=OpenWindow(0,0,0,400,230,#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget,"Colored ContainerGadgets")
CreateGadgetList(win)
ContainerGadget (0,10,10,380,100)
SetClassLong_(GadgetID(0),#GCL_HBRBACKGROUND,0)
ButtonGadget(1,90,40,180,20,"Button in Blue Container")
CloseGadgetList()
ContainerGadget (2,10,120,380,100)
ButtonGadget(3,90,40,180,20,"Button in Green Container")
CloseGadgetList()
SetWindowCallback(@myWindowCallback())
Repeat
Select WaitWindowEvent()
Case #PB_EventSizeWindow
ResizeGadget(0,-1,-1,WindowWidth()-20,-1)
ResizeGadget(2,-1,-1,WindowWidth()-20,-1)
Case #PB_Event_CloseWindow
DeleteObject_(blueBrush)
DeleteObject_(greenBrush)
End
EndSelect
ForEver
You're welcome and no offense takenhalo wrote:Thank you!
No offense, but you PB programmers write the worst spaghetti code I have ever seen. If I wrote code like that, I would spend more time formatting than thinking:
Code: Select all
Global.l blueBrush=CreateSolidBrush_(RGB(0,0,255))
Global.l greenBrush=CreateSolidBrush_(RGB(0,255,0))
Procedure myWindowCallback(hwnd.i, msg.i, wparam.i, lparam.i)
result=#PB_ProcessPureBasicEvents
Select msg
Case #WM_ERASEBKGND
container.RECT
Select hwnd
Case GadgetID(0)
container\right=GadgetWidth(0)
container\bottom=GadgetHeight(0)
FillRect_(wparam,container,blueBrush)
result=1
Case GadgetID(2)
container\right=GadgetWidth(2)
container\bottom=GadgetHeight(2)
FillRect_(wparam,container,greenBrush)
result=1
EndSelect
EndSelect
ProcedureReturn result
EndProcedure
win=OpenWindow(0,0,0,400,230,"Colored ContainerGadgets", #PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget)
ContainerGadget (0,10,10,380,100)
SetClassLong_(GadgetID(0),#GCL_HBRBACKGROUND,0)
ButtonGadget(1,90,40,180,20,"Button in Blue Container")
CloseGadgetList()
ContainerGadget (2,10,120,380,100)
ButtonGadget(3,90,40,180,20,"Button in Green Container")
CloseGadgetList()
SetWindowCallback(@myWindowCallback())
Repeat
Select WaitWindowEvent()
Case #PB_Event_SizeWindow
ResizeGadget(0,-1,-1,WindowWidth(0)-20,-1)
ResizeGadget(2,-1,-1,WindowWidth(0)-20,-1)
Case #PB_Event_CloseWindow
DeleteObject_(blueBrush)
DeleteObject_(greenBrush)
End
EndSelect
ForEver
Code: Select all
If OpenWindow(0, 0, 0, 322, 150, "ContainerGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ContainerGadget(0, 8, 8, 306, 133, #PB_Container_Raised)
ButtonGadget(1, 10, 15, 80, 24, "Button 1")
ButtonGadget(2, 95, 15, 80, 24, "Button 2")
CloseGadgetList()
SetGadgetColor(0,#PB_Gadget_BackColor,$ff0000)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf