Как получить строковое значение из mfc popupmenu при нажатии без использования идентификатора ресурса

Я создаю динамическое всплывающее меню без создания идентификаторов ресурсов. Как я могу отслеживать действие, на которое нажали, без идентификатора ресурса?

Есть ли способ получить строковое значение меню?

CMenu m_subMenu;
m_subMenu.CreatePopupMenu();

utf16string actionName(L"");
int nCatgryId = 1000;

for( ; itr != itrEnd ; ++itr)
{
    actionName     = itr->first;
    CString csActionName = actionName.c_str();
    AppendMenu(MF_STRING,nId++, csActionName);
}

Так как же получить значение из меню при нажатии на действие?

2 ответа

#define YOURMENU_ID  WM_APP+10
...
AppendMenu(.., YOURMENU_ID,...);

И справиться с этим в WM_COMMAND

Каждый пункт меню, когда вы его создаете, должен иметь идентификатор. Вам необходимо зарезервировать список идентификаторов, использовать их для создания пунктов меню, а затем использовать обычные функции меню для получения информации о них.

Другие вопросы по тегам