VC++ ドラッグしながらの図の描画に関して
描画に関して質問があります。
アクセサリのペイントツールのようにマウスドラッグしながら長方形を描画させたいのですが、
ドラッグの際に既に描画してあった長方形を消去する方法が理解できません。
具体的には以下のような方法です。
// ドラッグ中の描画処理
SetROP2( hDC, R2_NOT ); // 前景モードを変更
hPen = CreatePen( PS_DOT, 1, RGB(0, 55, 0) ); // 黒い点線のペンを作成
hBrush = (HBRUSH)GetStockObject( NULL_BRUSH ); // 空のブラシを取得
SelectObject( hDC, hPen ); // 作成したペンを使用するように設定
SelectObject( hDC, hBrush ); // 取得したブラシを使用するように設定
Rectangle( hDC, start.x, start.y, old_end.x, old_end.y ); // 四角形を描画
SetROP2とブラシは共に塗りつぶしを指定するものですが、これらを併用することによって何故既存の図形を消去していくことができるのかわかりません。
疑問になったのでブラシに関する記述を消去し実行してみると長方形内部の色が反転されましたが、これは理解できます。
しかし、これにブラシに関する記述を復元させることにより、なぜ内部が真っ白になるのかがわかりません。
また、塗りつぶしはSetROP2とブラシのどちらが先に行うのでしょうか?お手数ですが回答よろしくお願いします。
お礼
うまくいきました。 ありがとうございます。