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