次のウィンドウ階層を持つアプリケーションがあります。
W1
-W2 (Child of W1)
- W3 ( Child of W2)
--------------------|
| W1|------------| |
| |W2 |------| | |
| | |W3 | | |
| | |------| | |
| |------------| |
|-------------------|
W2 で特定のイベントが発生すると、次のように呼び出しますUpdateWindow
。
W2::onCertainEvent()
{
Invalidate(NULL);
UpdateWindow();
}
W2のOnPaint
処理は次のようになります。
W2::onPaint()
{
//W2 logic goes here
W3.Invalidate(NULL); //So that paint messages are given to W3
}
しかし、W2 でペイント メッセージが失われることがあります。UpdateWindow
呼び出されますが、呼び出される対応するOnPaint
()はありません。
プロパティを W1 (W2 の親) に追加するとWS_EX_TRANSPARENT
、常にペイント メッセージが W2 で受信されます。
しかし、WS_EX_TRANSPARENT
フラグを追加する際の問題は、ウィンドウ W1 のサイズを変更すると、多くのちらつきが発生することです。
私の質問は次のとおりです。 1. ペイント メッセージが失われる W2 の何が問題なのですか? 2.追加WS_EX_TRANSPARENT
するとペイントの問題が解決する理由。3. フラグが使用されている場合、ちらつきの問題を解決するにはどうすればよいですか。
ありがとう、