ShowWindow(g_hWnd, 1);
UpdateWindow(g_hWnd);
ShowWindow
の後にUpdateWindow
と呼ぶ必要があるのはなぜですか?ShowWindowの後にUpdateWindowを呼び出す必要があるのはなぜですか?
ShowWindow(g_hWnd, 1);
UpdateWindow(g_hWnd);
ShowWindow
の後にUpdateWindow
と呼ぶ必要があるのはなぜですか?ShowWindowの後にUpdateWindowを呼び出す必要があるのはなぜですか?
ShowWindow
ウィンドウを再描画しません。 UpdateWindow
を呼び出すと、WM_PAINT
メッセージがウィンドウに送信され、そのメッセージが再ペイントされます。
これはまったく必要ありません。あなたのウィンドウはそれなしでうまくペイントします。
ウィンドウを作成した後で、メッセージループに入る前にプログラムが大量に実行されると、わずかなメリットがあります。ユーザーには何かがあります。スプラッシュスクリーンはより典型的なアプローチです。
通常、メッセージキューが空の場合にのみ、WM_PAINT
が送信されます。通常の状況下ではこれで十分であり、実際には不必要な再描画を多く最適化します。キュー内のメッセージは、しばしばウィンドウの一部を無効にすることがあり、結果的には別のペイントになるアプリケーション状態を変更することになる(そのため、ユーザーは新しいアプリケーション状態を見る)。したがって、このようなすべてのメッセージが処理された後に再描画が行われ、システムは新しいウィンドウの内容が一定の時間有効であると考えます(まだ別のメッセージがキューに入るまで)。あなたはすぐにWM_PAINT
を強制する必要があり、上記のロジックをバイパス場合
ただし、UpdateWindow()
を呼び出すことによって、(無効領域がある場合)WM_PAINT
を送る強制します。
必須ではありません。 –