Wann (und wie) werden die untergeordneten Elemente eines Win32-Fensters als Reaktion auf eine Größenänderung angeordnet?

Windows sendet mehrere Nachrichten, wenn die Größe eines Fensters geändert wird:

WM_GETMINMAXINFOWM_ENTERSIZEMOVEWM_EXITSIZEMOVEWM_NCCALCSIZEWM_SIZINGWM_SIZEWM_WINDOWPOSCHANGINGWM_WINDOWPOSCHANGED

und möglicherweise mehr.

Wenn ich die Kinder neu positionieren möchte, wenn die Größe meines Fensters geändert wird,woher undWie soll ich das machen
Ich suche die "beste" Methode - d. H. Die Methode mit den wenigsten Fallstricken und deram wenigsten flackern.

Meineaktuell Methode ist, die gesamte Neupositionierung im Inneren durchzuführenWM_NCCALCSIZEmitDeferWindowPos.
Ich habe jedoch auch versucht, damit umzugehenWM_WINDOWPOSCHANGED... aber egal, wo ich damit umgehe, es scheint so, als gäbe esimmer wenigstensein "Moment", in dem das Fenster in einem Zwischenzustand gezeichnet wird, in dem sich die Größe des Fensters geändert hat, die Größe des Inhalts jedoch noch nicht geändert wurde.

Ein weiterer Effekt würde ichebenfalls Ich mag es zu vermeiden: ein Kind zu bewegennach dem es ist schon umgezogen. Ich möchte nicht, dass der Benutzer ein Steuerelement sieht, das nach unten und dann rutschtzurück wegen meiner Änderung auf - es sollte so wenige vorübergehende Effekte wie möglich haben.

Mache ich das richtig? Gibt es einen besseren Ort, an dem ich die Kinder des Fensters auslegen kann?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage