Feststellen ob man das erste mal WM_ACTIVATE erhält
-
Ist es möglich irgendwie herauszufinden ob WM_ACTIVATE zum ersten mal vorkommt (also direkt nach Programmstart), oder ob es sich um eine Tatsächliche (De)Aktivierung handelt?
Das Problem bei mir ist, dass ich die erste Nachricht erhalte bevor das Objekt zu welchem die Nachricht gehört vollständig erzeugt ist.
Die Standard-Message-Prozedur kann von mehreren Fenstern geteilt werden, daher ist eine static Variable darin welche die WM_ACTIVATEs zählt keine Lösung und nen Zähler im Objekt geht ebenfalls nicht, da es ja noch nicht existiert, sonst gäbe es das Problem nicht.Ne einfache Lösung wäre es, wenn Windows nicht direkt die Nachrichten-Prozedur aufrufen würde, sondern die Nachrichten immer in die Nachrichtenschleife einreiht, aber das tut es ja nicht immer

-
Schau dir mal wParam und lParam an - du könntest z.B. ein Array anlegen und für jedes hwnd speichern, ob es der erste Aufruf ist...
-
Habe gehofft es gibt nen anderen weg, aber habe es jetzt so gemacht
