開発環境はVC++2005 MFC-SDIです。
マウスカーソルに連動してビットマップを描画しているのですが、
ダイアログ上は問題なく描画できるのですが、ダイアログ上から離れると描画できませ
ん。
マウスのキャプチャは行っているのですが、デバイスコンテキストがダイアログ上
のものしか取得していないのが原因のようなが気がします。
ダイアログ上を離れても描画を続けるにはどうすればよいのでしょうか?
申し訳ありませんが、ご教授いただけないでしょうか?
単一モニタならGetDC(NULL)あたり?
GetDC(NULL)でも駄目でした。
SetCapturesした場合に、ダイアログを離れたOnMouseMoveのイベントが拾えません。
そうなんです、まさにその状態みたいです。
状況的には
①OnLButtonDownでSetCaptures
②ダイアログを出るとOnMouseMoveイベントが拾えない
③OnLButtonUpはダイアログの外でも拾えて、リリースは出来ている。
申し訳ありませんOnMouseMoveは拾えているようでした
ただ、ダイアログを離れた場合のビットマップの表示が解決できてません。
なんとか描画は解決いたしました。
どう解決したのか書いたほうがいいと思う。
GetDCじゃなくてCreateDCなら描けた気がする。
dcDesktop.CreateDC(DISPLAY, NULL, NULL, NULL);
dcMem.CreateCompatibleDC(&dcDesktop);
として書き込みました。が、残像が残る問題が出てしまい。苦しんでおります。
クライアント領域ハンドル取得 HWND hwnd = ::WindowFromPoint(pt);
として、現在のオブジェクトハンドルを取得して、そこの座標に変換して
前回の座標を更新しようとしているのですがうまくいきません。
前回の座標からクライアントの座標に直したときにタイトルバーの分
おかしくなっている気がします。
できれば掲示板の修正を待ってほしい。雑談ラウンジに書くのもありだろう。