单击时如何从 MFC 弹出菜单中获取字符串值而不使用资源 ID

发布于 2024-11-25 00:11:44 字数 400 浏览 1 评论 0原文

我正在创建一个动态弹出菜单,但不生成资源 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);
}

那么当单击某个操作时如何从菜单中获取值呢?

I'm creating a dynamic popup menu without generating resource ids. How can I keep track of the clicked action without a resource id?

Is there any way I can get menu's string value?

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);
}

So how do I obtain the value from the menu when an action is clicked?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

拥抱我好吗 2024-12-02 00:11:44
#define YOURMENU_ID  WM_APP+10
...
AppendMenu(.., YOURMENU_ID,...);

并在WM_COMMAND中处理它

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

And handle it in WM_COMMAND

混浊又暗下来 2024-12-02 00:11:44

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

Every menu item, when you create it, needs to have an ID. You need to reserve a list of ID's, use those to create the menu items, then use the normal menu functions to get information on them.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文