Guten Tag, bin gerade an einem Programm und habe das Problem, dass die Anweisungen in WM_PAINT mein Child Window für einen Button blockieren. Das heißt der Button ist unter dem mit WM_PAINT gezeichneten. Wenn ich WM_PAINT wegnehme funktioniert alles und der Button wird angezeigt. Bei WM_PAINT zeichne ich einen Buffer auf den Bildschirm und der Hintergrund (hbrBackground) musste auf NULL gesetzt werden. Wie hole ich den Button in den Fordergrund bzw. mache ihn wieder sichtbar? Achso und was schreibt man nochmal bei hInstance des Buttons? Ich weiß, dass bei mir da immer irgendeine Funktion stand, meine ich zumindest (bin gerade im Urlaub, hab nicht alles da was ich brauche und DEV C++ ist auch etwas am rumspacken). Ach und wie konnte man nochmal die Fenstergröße "einfrieren"? Da war irgendwas mit getminmaxinfo oder so... weiß ich nicht mehr genau^^ Naja danke erstmal im Voraus.
:
Verschoben durch User
Joshua H. schrieb: > Wenn ich WM_PAINT > wegnehme funktioniert alles und der Button wird angezeigt. Ist evtl. WS_CLIPCHILDREN/WS_CLIPSIBLINGS bei einem/mehreren der beteiligten Fenster/Controls nicht gesetzt? >Achso und was schreibt man nochmal bei hInstance des Buttons? Bei CreateWindow? Dort gibt man generell das Handle des Moduls (Also praktisch der .exe oder der .dll) an, aus dem heraus das jeweilige Fenster/Control erzeugt wird. Also in der Regel GetModuleHandle(NULL) bzw. die hInstance, die man von WinMain() übergeben bekommen hat (oder im Falle von *.dlls entsprechend aus der DllMain()) >Fenstergröße "einfrieren"? Das sinnvollste wäre wohl ein Fenster zu erzeugen, das keinen anfassbaren Rahmen hat ;D siehe auch: http://msdn.microsoft.com/en-us/library/windows/desktop/ms632600.aspx Also insbesondere keinen WS_OVERLAPPED*-Stil nutzen. Ansonsten warst du da schon richtig: http://msdn.microsoft.com/de-de/library/windows/desktop/ms632626.aspx
Naja jetzt wird der Button zwar angezeigt, allerdings erst, nachdem ich das Fenster einmal bewegt habe...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.