ポップアップのメニューがアクティブにならない – プログラミング – Home

ポップアップのメニューがアクティブにな...
 
通知
すべてクリア

[解決済] ポップアップのメニューがアクティブにならない


nagan
 nagan
(@nagan)
ゲスト
結合: 18年前
投稿: 4
Topic starter  

環境は、VC++2005SP1 WindowXPにてMFCで開発を行っております。

動的に生成した自作のListboxクラスにおいて下記処理にて
ポップアップメニューを作成しようとしております。
右クリックにてポップアップメニューは表示されるるのですが、
選択できない状態のままになっております。
どう対応するればよいのかわかりません。
申し訳ありませんが、ご教授ください。
宜しくお願い致します。

//********************************************************************
//
//
//
//
********************************************************************
void CMyListBox::OnContextMenu(CWnd* pWnd, CPoint point)
{
CMenu menu;
menu.CreatePopupMenu();
menu.InsertMenu( 0, MF_BYCOMMAND, ID_LIST_POP1, POP1 );
menu.InsertMenu( 1, MF_BYCOMMAND, ID_LIST_POP2, POP2 );

menu.TrackPopupMenu( TPM_RIGHTBUTTON, point.x, point.y, AfxGetMainWnd
() );
menu.DestroyMenu();
}
//********************************************************************
//
//
//
//
********************************************************************
BOOL CMyListBox::OnCommand(WPARAM wParam, LPARAM lParam)
{
switch( wParam )
{
case ID_LIST_POP1:
MessageBox(Menu1起動);
break;

}
return CListBox::OnCommand(wParam, lParam);
}


引用未解決
トピックタグ
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

> 右クリックにてポップアップメニューは表示されるるのですが、
> 選択できない状態のままになっております。

プロジェクトが SDI や MDI であり、
上記の意味が無効状態になってしまうということでしたら、
TrackPopupMenu() の最後の引数を NULL にしてみてください.


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

プロジェクトはSDIで作成しているのですが、TrackPopupMenu() の最後の引数を NULL
とするとポップアップメニュー自体が表示されませんでした。
現状は、ポップアップメニューは表示されるが、無効状態になっています。
すみません、ありがとうございました。


返信引用
Kerry
 Kerry
(@Kerry)
ゲスト
結合: 20年前
投稿: 192
 

menu.TrackPopupMenu( TPM_RIGHTBUTTON, point.x, point.y, this );

でどうでしょか?


返信引用
ryo
 ryo
(@ryo)
ゲスト
結合: 23年前
投稿: 252
 

OnContextMenu(CWnd* pWnd, CPoint point)
でひっぱってきてる 「pWnd」でもいける


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

ありがとうございます。
下記処理でイベントを拾うことができました。
menu.TrackPopupMenu( TPM_RIGHTBUTTON, point.x, point.y, pWnd );


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

menu.TrackPopupMenu( TPM_RIGHTBUTTON, point.x, point.y, this);
でもいけました。

Kerryさん、ryoさんありがとうございます。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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