VC6、MFCダイアログベースで制作しています。
親のダイアログからモーダルでダイアログを開き、そのモーダル
ダイアログにリストビューがあります。そのリストビューのアイ
テムを右クリックしポップアップメニューを表示して、「項目を
削除」というような機能をつけようとしています。しかし、ポッ
プアップメニューは表示するのですが、うまくいきません。
CMenu menu;
CPoint posMouse;
VERIFY(menu.LoadMenu(IDR_MENU_POPUP));
::GetCursorPos(&posMouse);
menu.GetSubMenu(1)->TrackPopupMenu(TPM_LEFTALIGN
|TPM_LEFTBUTTON, posMouse.x, posMouse.y, this);
ポップアップメニューを表示する部分は以上のように記述している
のですが、モーダルダイアログのクラス内に「項目を削除」などの
処理を書いても、何も起こらずポップアップメニューが消えてしま
います。押されたWM_COMMANDメッセージが親ダイアログのクラスへ
行ってしまいます。
これを、モーダルダイアログのクラス内でWM_COMMANDメッセージ
を受け取り、そこで、「項目を削除」などの処理を書きたいのです
が、どうすれば、よいのでしょうか?TrackPopupMenuの最後の引数
thisをどうかすればよいと思うのですが、そのあたりがよくわかり
ません。
ご教授お願いいたします。
普通にクラスウィザードのメッセージマップで追加できませんか?
モーダルダイアログクラス、メニューのIDを選択し、"関数の追加"を押すだけ
ですが...
ご返答ありがとうございます。
うまくいきました。最初、hirariさんのご指導と同じやりかたでやって
いたのですが、なぜか親ダイアログの方へメッセージがいってしまい、
とまどってました。しかし、何度かやっていたら、うまくできました。
何が原因だったのでしょう・・・さっぱり
ありがとうございました。
ツイート | ![]() |