Seite 2 von 2

Verfasst: 01.08.2007 15:30
von edel
Unter Windows gibt es einiges :

Window Extra Bytes
Window Userdata
oder,wie schon oben erwaehnt Property

Die beste Variante sind die Extra Bytes , soweit ich aber weiss
nur mit einem Hack fuer PB Fenster/gadgets moeglich.

Code: Alles auswählen

  setwindowlong_(hWnd,0,data)
  getwindowlong_(hWnd,0)
Userdata ist die einfachste Moeglichkeit, aber auf 4 Bytes beschraenkt.
Was aber in den meisten Faellen ausreichen sollte.

Code: Alles auswählen

  setwindowlong_(hWnd,#gwl_userdata,data)
  getwindowlong_(hWnd,#gwl_userdata)
Property sind eine art assoziatives Array, dadurch aber auch langsamer
und jeder kann sich die Liste anschauen, Schluessel wie etwa 'lala', sollte
man dann vermeiden, sofern man es unter das Volk bringt ;) .

Verfasst: 01.08.2007 20:52
von hjbremer
MSDN sagt:
Before destroying a window (that is, before processing the WM_DESTROY message), an application must remove all entries it has added to the property list. The application must use the RemoveProp function to remove the entries.
geschieht dies automatisch wenn ein PB Programm endet ?

Verfasst: 01.08.2007 20:55
von Kaeru Gaman
> geschieht dies automatisch wenn ein PB Programm endet ?
nope
ts-soft hat geschrieben: Case #PB_Event_CloseWindow
UnSubClassWindow(GadgetID(0))
Break
Procedure UnSubClassWindow(hWnd.l)
SetWindowLong_(hWnd, #GWL_WNDPROC, GetProp_(hwnd, "handler"))
RemoveProp_(hWnd, "handler")
EndProcedure