Es ist völlig unnötig, Ihr Fenster wird ohne es gut malen.
Sie werden einen kleinen Vorteil davon sehen, wenn Ihr Programm nach dem Erstellen des Fensters, aber vor dem Eintritt in die Nachrichtenschleife viele Aufgaben erledigt. Der Benutzer hat etwas zu sehen. Ein Splash-Screen ist der typische Ansatz.
Normalerweise sendet das System WM_PAINT
nur, wenn die Nachrichtenwarteschlange leer ist. Unter normalen Umständen ist das gut genug und es optimiert tatsächlich eine Menge unnötigen Repaint. Die Nachrichten in der Warteschlange ändern häufig den Anwendungsstatus, was oft dazu führen kann, dass ein Teil des Fensters ungültig gemacht wird, und daher zu einem weiteren Malvorgang führt (so sieht der Benutzer den neuen Anwendungszustand). Das Repaint passiert also, nachdem alle diese Nachrichten bearbeitet wurden und das System denkt, dass der Inhalt des neuen Fensters für einige Zeit gültig sein wird (bis wieder eine oder mehrere Nachrichten in die Warteschlange kommen).
Wenn Sie das WM_PAINT
jedoch sofort erzwingen und die obige Logik umgehen müssen, können Sie das Senden von WM_PAINT
erzwingen (wenn eine ungültige Region vorhanden ist), indem Sie UpdateWindow()
aufrufen.