我有一个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);


为了简洁起见,我省略了其余菜单项。该菜单有效,包括键盘快捷键,但是问题是我在最终菜单中看不到带下划线的快捷键。

该菜单只有一个条目:



我希望能看到该条目(在粗体字下划线的地方)。



如何使下划线显示出来?

最佳答案

默认情况下,使用鼠标调用上下文菜单时,Windows不显示下划线-仅当使用键盘调用上下文菜单时。您不能在没有所有者绘制菜单的情况下覆盖此行为。

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

关于c++ - 如何在TrackPopupMenu中获得助记符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1370621/

10-13 00:06