0

Win32 アプリでメニューを作成しています。サブメニューに 2 つのアイテムを作成したいのですが、1 つしか表示されません。

BOOL foo;
hSubMenu = CreatePopupMenu();
if (!hSubMenu)
    return NULL;
InsertMenu(hMenu, 0, MF_BYCOMMAND | MF_STRING | MF_POPUP, (UINT)hSubMenu, L"1 sub");
HBITMAP hBitmap = (HBITMAP)LoadImage(hInst, MAKEINTRESOURCE(IDB_BITMAP1), IMAGE_BITMAP, 16, 16, LR_DEFAULTCOLOR);
MENUITEMINFO mii;
ZeroMemory(&mii, sizeof(MENUITEMINFO));
mii.cbSize = sizeof(MENUITEMINFO);
mii.fMask = MIIM_CHECKMARKS | MIIM_FTYPE | MIIM_ID | MIIM_STATE | MIIM_STRING;
mii.fType = MFT_STRING;
mii.fState = MFS_DEFAULT;
mii.wID = ID_FILE_QUIT;
mii.hbmpChecked = hBitmap;
mii.hbmpUnchecked = hBitmap;
mii.dwTypeData = L"Item";
mii.cch = 4;
foo = InsertMenuItem(hSubMenu, 0, TRUE, &mii);

ZeroMemory(&mii, sizeof(MENUITEMINFO));
mii.cbSize = sizeof(MENUITEMINFO);
mii.fMask = MIIM_CHECKMARKS | MIIM_FTYPE | MIIM_ID | MIIM_STATE | MIIM_STRING;
mii.fType = MFT_STRING;
mii.fState = MFS_DEFAULT;
mii.wID = ID_FILE_QUIT1;
mii.hbmpChecked = hBitmap;
mii.hbmpUnchecked = hBitmap;
mii.dwTypeData = L"Item abc";
mii.cch = 4;
foo = InsertMenuItem(hSubMenu, 1, TRUE, &mii);
TCHAR buff[256];
if (!foo)
{
    DWORD i = GetLastError();
    if (i)
    {
        FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, i, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), buff, 256, NULL); // it says "The parameter is incorrect"
    }
}

ここに画像の説明を入力

どこに問題があるのか​​わからない。誰でも私を助けることができますか?あなたの提案は高く評価されます!

4

1 に答える 1