1

win32 プラットフォーム SDK (XP Pro 上) を使用して、複数の子ウィンドウを持つ単一のメイン ウィンドウで構成されるアプリを作成しています。

CreateWindow に渡されるスタイルはWS_OVERLAPPEDWINDOW | WS_VISIBLE、(メイン ウィンドウ用) とWS_CHILDWINDOW | WS_VISIBLE子用です。

私が見ているエラーは、別のアプリケーションをアプリの上にドラッグすると、下にあるウィンドウが再描画されないことです。更新を強制する簡単な (しかし厄介な) 方法は、タイトルバーを「揺らす」ことです。

Windows メッセージが欠落しているか、win32 関数を正しく呼び出していないと推測しています。私のコードのほとんどは、Petzold の 95 の本から直接引用しています。

それが重要な場合、メイン ウィンドウは何も描画する必要はありません。子ウィンドウがすべての表示義務を処理します。

4

1 に答える 1

0

WM_PAINT メッセージに対して DefWindowProc を呼び出していないようです。

WM_PAINTイベントを正しく処理していますか? 特に、呼び出しているこの WM_PAINT メッセージについて、次のことを確認してください。

DefWindowProc(hwnd,msg,wParam,lParam);

WM_PAINT は、ウィンドウを再描画する必要があるときに呼び出されます。

ウィンドウの独自の描画を処理しようとしている場合は、ハンドラーで BeginPaint と EndPaint を呼び出していることを確認してください。

于 2009-01-17T03:38:00.013 に答える