ご返答ありがとうございます。
追記いたします。
gFlgをOnDraw内で更新しているのは・・・
OnDrawが、クリックイベント以外から呼ばれる場合も考慮しての事です。
それ自体に問題はないので、気にしないでください。
問題は、ScrollWindowExから、OnDrawが呼ばれた場合に、
pDC->FillSolidRectの処理実行が、表示に反映されないことなので
よろしくお願い致します。
だとすると、クリッピングされてるか、逆にOnDrawが偶数回呼ばれているか?
# むぅ、なんか手元ではうまく再現しない…。
> ScrollWindowEx( 5, 5, NULL, NULL, NULL, NULL, ( SW_INVALIDATE | SW_ERASE));
クライアント領域のサイズを(320, 240)と仮にした場合、この関数が行っている事は
1、現在ウィンドウに表示されているイメージ(座標でいうと[0, 0, 320, 240])を
[5, 5]移動した位置[5, 5, 320(計算上は325), 240(同245)]にコピー
2、InvalidateRect(CRect(0, 0, 5, 240));
InvalidateRect(CRect(0, 0, 320, 5));
と同じような感じになる。(全く上記の通りとは言ってないよ)
つまり、ScrollWindowEx() によって OnDarw() が呼ばれた時に書き込みが反映される
領域は CRect(0, 0, 5, 240) と CRect(0, 0, 320, 5) 内のみ。
なので、
pDC->FillSolidRect(10, 10, 100, 100, RGB(255, 0, 0));
pDC->FillSolidRect(10, 100, 100, 200, RGB(0, 0, 255));
と書き込みが反映される領域外に書いても画面上は 赤<->青 とは変わらない。
単純に ScrollWindowEx() コール前に表示されていた画面イメージが右下にズレていくだけ。
> 問題は、ScrollWindowExから、OnDrawが呼ばれた場合に、
> pDC->FillSolidRectの処理実行が、表示に反映されないことなので
よってこれは正常な動作となる。
gakさんが書かれてる通りですね。描画対象になってない。
# 再現おかしいの当然だ、デバッガで止めたら駄目ジャン…アホだorz>自分
…過去ログ検索してみたのかと、子一時間(ry
皆様、ご返答ありがとうございました。
よく理解できました。
感謝いたします。
また、よろしくお願い致します。