- 締切済み
右クリックメニューについて
VC++2005のMFCでダイアログベースアプリを作成しています。 右クリック動作を行ったタイミングでOnContextMenu関数を呼び出し、処理を行いたいのですが、作成した方法が悪いのか、 (イベントの追加で自動生成する方法が分からず、他ソースのOnContextMenu関数部をコピー) 右クリックしても関数内に入ってくれません。 コンパイルは通っており、コピー元のソースでは検知されているのですが。。。 何か解決法について心当たりのある方おられましたら、お手数ですがご教授お願い致します。 下記は問題箇所のソースです。 【メッセージマップ】 BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) ON_WM_CONTEXTMENU() END_MESSAGE_MAP() 【OnContextMenu関数】 void CTestDlg::OnContextMenu(CWnd* /*pWnd*/, CPoint point ){ AfxMessageBox("右クリック検知しました"); } 【ヘッダ部】 afx_msg void OnContextMenu(CWnd* /*pWnd*/, CPoint point ); ※なお、右クリックする場所はダイアログ上に作成したツリービューの上となっています。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- machongola
- ベストアンサー率60% (434/720)
こんにちは。 >>【メッセージマップ】 >>BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) >>ON_WM_CONTEXTMENU() >>END_MESSAGE_MAP() メッセージマップする場所を間違えているのではないでしょうか。 此れですと、CAboutDlgのメッセージマップ追加になってしまうのではないでしょうか。 BEGIN_MESSAGE_MAP(CTestDlg, CDialog) //その他 ON_WM_CONTEXTMENU()//取り敢えずココに入れる END_MESSAGE_MAP() BEGIN_MESSAGE_MAP(CTestDlg, CDialog)と成っている所を探して見て下さい。
お礼
該当箇所に移動したところ動作しました! コンストラクタなど上部箇所を全て折りたたんでいたので気づきませんでした。。。 どうもありがとうございました!