Seite 2 von 2
Re: Leeres Gadget
Verfasst: 19.06.2012 22:08
von Frabbing
Oder die Gadgets, die du in Gruppen verschieben möchtest, in einem ContainerGadget plazierst.
So ist es geplant, nur soll der Container nicht sichtbar sein.
Die Greifer und Rahmen mache ich schon per mehrerer Canvas.
Edit: Ja, ein VD für PureBasic und XProfan.
Edit: WM_PAINT und WM_NCPAINT umzuleiten bringt leider kein brauchbares Ergebnis.

Re: Leeres Gadget
Verfasst: 19.06.2012 22:31
von RSBasic
Toll, dann muss ich mich ja mit meinem VD beeilen.
Du kannst ja auch einen Button fürs Overlayen nutzen:
Code: Alles auswählen
EnableExplicit
Define EventID
If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ButtonGadget(1,0,0,0,0,"",0)
ExplorerListGadget(2,10,10,200,200,"C:\",0)
EditorGadget(3,220,10,200,200,0)
SetGadgetText(3,"Hallo")
ResizeGadget(1,10,10,410,200)
SetWindowLongPtr_(GadgetID(1), #GWL_STYLE, GetWindowLongPtr_(GadgetID(1), #GWL_STYLE)|#WS_CHILD|#WS_VISIBLE|#BS_OWNERDRAW)
Repeat
EventID=WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
End
EndIf
ForEver
EndIf
Ist nur ein einfaches Beispiel. Wie du siehst, ist der Overlay-Button "unsichtbar" und du kannst dann im Callback deine Events auswerten, ob z.B. die Gadgetgruppe verschoben werden soll.
Vielleicht ist es das, was du brauchst.
Re: Leeres Gadget
Verfasst: 19.06.2012 22:46
von Frabbing
Das Gadget ownerdrawn zu machen ist eine gute Überlegung, daran hatte ich noch nicht gedacht.
Man kann #BS_OWNERDRAW auch direkt als Buttonflag setzen.
Leider betrifft das Neuzeichnen auch alle Childs, die ich darauf lege; genauso wie das Abfangen der Paint-Messages diese beeinflusst. Grad eingebaut und getestet, so kann ich es aber nicht verwenden.
Scheint so, als müsse ich mir doch ganz was Anderes überlegen.

Re: Leeres Gadget
Verfasst: 19.06.2012 22:51
von RSBasic
Und wenn du bei deinen Gadgets jeweils ein Callback aufrufst und das Neuzeichnen unterbindest? Hast du mal die Messages debuggt, um herauszufinden, welche Messages beim Neuzeichnen entstehen, die du dann unterbinden kannst?
Re: Leeres Gadget
Verfasst: 20.06.2012 06:31
von Frabbing
Ja, natürlich. Wenn ich das Neuzeichnen unterbinde, wird auch das Neuzeichnen der zugehörigen Childs unterbunden, was natürlich nicht erwünscht ist. Die sollen ganz normal reagieren.
