0

プログラムでメニューを作成しようとしていますが、以下のコードは2番目のメニュー項目(ファイルの隣)にポップアップメニューを作成できません(最初の[ファイル]-> [新規]などではすべて問題ありません)。[表示]をクリックすると、showSelectAllコマンドの代わりに何も実行されません。

HMENU menu = CreateMenu();
HMENU subMenu1 = CreatePopupMenu();

AppendMenu(subMenu1,MF_STRING,IDC_MENU_NEW,_T("New"));
AppendMenu(subMenu1,MF_STRING,IDC_MENU_EXIT,_T("Exit"));

AppendMenu(menu,MF_POPUP,(UINT_PTR)subMenu1,_T("File"));

SetMenu(dlg,menu);
HMENU menu2 = CreateMenu(); 
HMENU subMenu2 = CreatePopupMenu();

AppendMenu(menu,MF_INSERT,(UINT_PTR)menu2,_T("View"));
AppendMenu(subMenu2,MF_STRING,IDC_MENU_EXIT2,_T("Select All"));

AppendMenu(menu2,MF_POPUP,(UINT_PTR)subMenu2,_T("View"));

私は何が間違っているのですか?情報を見つけるためにどこかを教えてもらえますか?

4

1 に答える 1

2

あなたのエラーはこのコード行にあると思います

AppendMenu(menu,MF_INSERT,(UINT_PTR)menu2,_T("View"));

MF_INSERTはAppendMenuの有効なフラグではなく、実際にはMF_ENABLEDにマップされます。この場合、MF_POPUPを使用して「表示」サブメニューを挿入すると思います。

これは、MSDNがMF_POPUPを説明する方法です。

メニュー項目がドロップダウンメニューまたはサブメニューを開くことを指定します。uIDNewItemパラメーターは、ドロップダウンメニューまたはサブメニューへのハンドルを指定します。このフラグは、メニュー名をメニューバーに追加するため、またはサブメニューをドロップダウンメニュー、サブメニュー、またはショートカットメニューに開くメニュー項目を追加するために使用されます。

于 2012-09-19T18:15:34.353 に答える