如何在TrackPopupMenu中获取助记符?

时间:2009-09-02 23:06:28

标签: c++ winapi trackpopupmenu

我有一个win32 / MFC应用程序,其中包含我以编程方式构建的上下文菜单:

CPoint pt;
GetMenuPopupPos(&pt);
CAtlString csItem = _T("&Example");
CMenu menu;
menu.CreatePoupMenu();
menu.AppendMenu(MF_STRING, IDM_EXAMPLE_COMMAND, csItem);
menu.TrackPopupMenuEx(TPM_LEFTALIGN|TPM_LEFTBUTTON, pt.x, pt.y, this, NULL);

为简洁起见,我省略了其余的菜单项。菜单工作,包括键盘快捷键,但问题是我无法在最终菜单中看到带下划线的快捷方式。

此菜单只有一个条目:

实施例

虽然我希望输入(粗体字母加下划线)。

电子 xample

如何显示下划线?

1 个答案:

答案 0 :(得分:3)

默认情况下,只有在使用键盘调用上下文菜单时,Windows才会显示下划线。除了所有者绘制菜单之外,您无法覆盖此行为。

如果用户选择了“下划线菜单快捷键”选项,或者用户通过Shift + F10或Windows上下文菜单键调用上下文菜单,则会显示您的快捷方式。