はじめまして!!
今VC++の勉強中なのですが、右クリックメニューの作成で
少々わからないことがあり、投稿させてもらいました。
右クリック時にはCMenuクラスを使用して、CreatePopupMenu、AppendMenu
TrackPopupMenuでトップレベルのメニューの表示はできたのですが、
2層目のメニューがある場合はどうすればいいのでしょうか?
例えばウインドウズの右クリックメニューでいうならば、右クリック→新規作成
→(各ファイル等)
この各ファイル等のポップアップメニューを表示するための方法をよかったら
教えていただけませんか。
CMenu menu;
menu.CreatePopupMenu();
menu.AppendMenu(MF_STRING|MF_ENABLED,ID_FILTER_03UNSHARP,"ソフト");
ClientToScreen(&point);
menu.TrackPopupMenu(
TPM_LEFTALIGN | //クリック時のX座標をメニューの左辺にする
TPM_RIGHTBUTTON, //右クリックでメニュー選択可能とする
point.x,point.y, //メニューの表示位置
this //このメニューを所有するウィンドウ
);
menu.DestroyMenu();
CScrollView::OnRButtonDown(nFlags, point);
同じくVC++勉強中のぴのきよです。
こうやったらできるみたいです。
----------------------------------------------
CMenu menu;
CMenu menuchild;
menu.CreatePopupMenu();
menuchild.CreatePopupMenu();
menuchild.AppendMenu(MF_STRING, ID_1, "ファイル1");
menuchild.AppendMenu(MF_STRING, ID_2, "ファイル2");
menu.AppendMenu(MF_STRING|MF_ENABLED|MF_POPUP,
(unsigned int)menuchild.m_hMenu,"ソフト");
ClientToScreen(&point);
menu.TrackPopupMenu(
TPM_LEFTALIGN | //クリック時のX座標をメニューの左辺にする
TPM_RIGHTBUTTON, //右クリックでメニュー選択可能とする
point.x,point.y, //メニューの表示位置
this //このメニューを所有するウィンドウ
);
menu.DestroyMenu();
CDialog::OnRButtonDown(nFlags, point);
----------------------------------------------