I am subclassing a containergadget so that it's background is a pattern brush.
All is well, but, as expected, all subsequent containergadgets share this setting.
How can I avoid that?
tia.
SetClassLong_() and #GCL_HBRBACKGROUND
Don't use #GCL_HBRBACKGROUND!
You are setting a class-style bit here which will effect all instances of this registered window class.
One way around this is to simply process #WM_ERASEBKGND within your container gadget's subclass procedure and use your patterned brush with FillRect_() etc.

You are setting a class-style bit here which will effect all instances of this registered window class.
One way around this is to simply process #WM_ERASEBKGND within your container gadget's subclass procedure and use your patterned brush with FillRect_() etc.
I may look like a mule, but I'm not a complete ass.
Yep, I know.srod wrote: You are setting a class-style bit here which will effect all instances of this registered window class.
One way around this is to simply process #WM_ERASEBKGND within your container gadget's subclass procedure and use your patterned brush with FillRect_() etc.
But if I subclass a window to have a pattern based background, all subsequent windows do not share that.
I can easily give multiple windows different background brushes, but I can't do that with containergadgets...

Furthermore : using a callback + FillRect_() is slower than letting windows take care of the redraw.
Not sure what you mean?
Why not use an image gadget?
Why not use an image gadget?
Code: Select all
If OpenWindow(0, 100, 100, 640, 600, "ListIcon Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget) And CreateGadgetList(WindowID(0))
UseJPEGImageDecoder()
LoadImage(1, #PB_Compiler_Home + "Examples\Sources\Data\terrain_texture.jpg")
ResizeImage(1, 300, 300)
ImageGadget(1, 0, 0, 300,300, ImageID(1))
UseGadgetList(GadgetID(1))
StringGadget(2, 20,20, 80, 30, "")
Repeat
EventID = WaitWindowEvent()
Until EventID = #PB_Event_CloseWindow
EndIf
I may look like a mule, but I'm not a complete ass.