Как получить строковое значение из mfc popupmenu при нажатии без использования идентификатора ресурса - PullRequest
0 голосов
/ 16 июля 2011

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

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

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 ]

0 голосов
/ 18 июля 2011

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

0 голосов
/ 16 июля 2011
#define YOURMENU_ID  WM_APP+10
...
AppendMenu(.., YOURMENU_ID,...);

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

...