如何在不使用资源ID的情况下单击时从mfc popupmenu获取字符串值

时间:2011-07-16 11:24:57

标签: visual-c++ mfc cmenu

我正在创建一个动态弹出菜单而不生成资源ID。如何在没有资源ID的情况下跟踪点击的操作?

有什么方法可以获得菜单的字符串值吗?

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 :(得分:0)

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

并在WM_COMMAND

中处理

答案 1 :(得分:0)

每个菜单项在创建时都需要有一个ID。您需要保留ID列表,使用它们创建菜单项,然后使用常规菜单功能获取有关它们的信息。