C++ Child Window verdeckt

OP #3767432
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.
Gast
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.