Wie ändert ein Fenster die eigene Größe?!

Ravebaby

Erfahrenes Mitglied
Mein CWnd hat eine bekommt ja bei der Initialisierung eine feste Größe.
Bei einer bestimmten Bedingung soll das Fenster jedoch selbst seine Größe anpassen können. Wie kann es seine Größe modifizieren? Als ich die "member" - Beschreibungen in der Hilfe angeschaut habe, hab ich es mit "SetWindowPos()" versucht, aber dies hat keine Auswirkung auf das Fenster...
Ist dies die falsche Funktion?
 
SetWindowPos sollte funktionieren, kommt aber auch auf die Parameter drauf an:

SetWindowPos( NULL, neuX, neuY, neuBreite, neuHoehe, SWP_NOZORDER );
 
Wenn Du nur die Größe ändern willst aber die Position beibehalten, solltest Du den Parameter SWP_NOMOVE dazunehmen (also: SWP_NOZORDER | SWP_NOMOVE)
 
ich habe es mal folgendermaßen gestestet:
this->SetWindowPos(NULL, 50, 50, 300, 200, SWP_NOZORDER | SWP_NOMOVE);
Aber er mal nur ein neues Fenster über das alte. Man sieht zwar noch den Inhalt des darunter liegenden,aber bei yPixel 250 malt er einen schwarzen Rahmen in das andere Fenster.
Also legt er es wohl einfach drüber.
Aber ich möchte doch das eigentliche Fenster anpassen.
Ich erzeuge ein CWnd und das erzeugt ein View. Und die sollen beide gemeinsam die Größe ändern. Muss ich da was anders machen / beachten?!
 
Zuletzt bearbeitet:
Kann mir denn wirklich keiner helfen?! Ich kann es mir einfach nich erklären, wie die Größe des Fensters sonst geändert werden soll... :confused:
 
Momente Mal, du hast dann ja zwei verschiedene Fenster. Von wem rufst du SetWindowPos auf? Vom View oder vom CWnd?
Theoretisch musst du beide mit SetWindowPos anpassen. Bei MFC gibt es ja normalerweise nur den View, nicht noch ein Fenster drumrum.
 
aso, ok. Im Moment rufe ich es vom View aus auf...
Dann schau ich mal, was passiert, wenn ich es bei beiden reinschreibe.
 
Zurück