ダイアログ範囲外のマウスクリックを取得したい

[戻る]
2004/04/19(月) 17:18:18
ダイアログ範囲外のマウスクリックをイベントとして
取得したいのですが、そのようなことは可能でしょうか?

(ダイアログ範囲内でしたら、OnLButtonDown()などで
  イベントが取れると思うのですが・・)
ちなみにダイアログはモーダルにしています。

環境はWindowsXP ,VC++6.0(MFC使用)です

よろしくおねがいします。

PATIO 2004/04/19(月) 17:51:43
この質問の仕方だと可能ですとか一言言われておしまいになりませんか?

もうちょっと突っ込んで自分がやりたい事を書いた方がいいと思いますよ。
どういう機能を実現するためにそういう操作が必要なんでしょう?
作成しているアプリはいったい何をするためのアプリなんでしょう?
そういう背景の部分まで書いていないと的確なレスポンスは得られません。

かつお 2004/04/19(月) 18:22:55
SetCaptureすれば可能。

2004/04/19(月) 20:03:15
[[解決]]
SetCaptureで解決しました!!ありがとうございました。

詳細は以下の通りです↓

<詳細>
ダイアログ(親)からダイアログ(子)を作成した後、
どこかでマウスが押されたら子ダイアログを消したかった。
(子はMessageBoxのような形状です。(子がモーダル))

<方法>
・親ダイアログ側処理
CMsgBox *m_pMsgBox;   // CMsgBoxは子ダイアログのクラス
m_pMsgBox = new CMsgBox();
m_pMsgBox->DoModal();// 子ダイアログ作成

・子ダイアログ側処理
OnInitDialog()にて
this->SetCapture();
OnLButtonDown()にて
::ReleaseCapture();
this->OnOK();
を行いました。(子ダイアログにはOKボタンがついています)

古いスレッドには追加発言できません。