ダイアログを離れたウィンドウ上での描画 – プログラミング – Home

ダイアログを離れたウィンドウ上での描画
 
通知
すべてクリア

ダイアログを離れたウィンドウ上での描画


ジョージア
 ジョージア
(@ジョージア)
ゲスト
結合: 18年前
投稿: 4
Topic starter  

開発環境はVC++2005 MFC-SDIです。

マウスカーソルに連動してビットマップを描画しているのですが、
ダイアログ上は問題なく描画できるのですが、ダイアログ上から離れると描画できませ
ん。

マウスのキャプチャは行っているのですが、デバイスコンテキストがダイアログ上
のものしか取得していないのが原因のようなが気がします。

ダイアログ上を離れても描画を続けるにはどうすればよいのでしょうか?

申し訳ありませんが、ご教授いただけないでしょうか?


引用解決済
トピックタグ
Ban
 Ban
(@ban)
Prominent Member
結合: 5年前
投稿: 776
 

単一モニタならGetDC(NULL)あたり?


返信引用
ジョージア
 ジョージア
(@ジョージア)
ゲスト
結合: 18年前
投稿: 4
Topic starter  

GetDC(NULL)でも駄目でした。


返信引用
貯○愛
 貯○愛
(@貯○愛)
ゲスト
結合: 18年前
投稿: 8
 

SetCapturesした場合に、ダイアログを離れたOnMouseMoveのイベントが拾えません。


返信引用
ジョージア
 ジョージア
(@ジョージア)
ゲスト
結合: 18年前
投稿: 4
Topic starter  

そうなんです、まさにその状態みたいです。

状況的には
①OnLButtonDownでSetCaptures
②ダイアログを出るとOnMouseMoveイベントが拾えない
③OnLButtonUpはダイアログの外でも拾えて、リリースは出来ている。

申し訳ありませんOnMouseMoveは拾えているようでした
ただ、ダイアログを離れた場合のビットマップの表示が解決できてません。
なんとか描画は解決いたしました。


返信引用
ぬふや
 ぬふや
(@ぬふや)
ゲスト
結合: 18年前
投稿: 34
 

どう解決したのか書いたほうがいいと思う。


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

GetDCじゃなくてCreateDCなら描けた気がする。


返信引用
ジョージア
 ジョージア
(@ジョージア)
ゲスト
結合: 18年前
投稿: 4
Topic starter  

dcDesktop.CreateDC(DISPLAY, NULL, NULL, NULL);
dcMem.CreateCompatibleDC(&dcDesktop);
として書き込みました。が、残像が残る問題が出てしまい。苦しんでおります。
クライアント領域ハンドル取得 HWND hwnd = ::WindowFromPoint(pt);
として、現在のオブジェクトハンドルを取得して、そこの座標に変換して
前回の座標を更新しようとしているのですがうまくいきません。
前回の座標からクライアントの座標に直したときにタイトルバーの分
おかしくなっている気がします。


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

できれば掲示板の修正を待ってほしい。雑談ラウンジに書くのもありだろう。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました