如何使用C ++中的TrackPopupMenu更新已显示的上下文菜单

时间:2012-11-04 23:33:21

标签: c++ winapi drop-down-menu

说,如果我使用带有TPM_RETURNCMD标志的TrackPopupMenu()API显示弹出上下文菜单。显示上下文菜单时,我需要查看键盘上是否按下Shift或Ctrl键,并根据更新上下文菜单中的某些菜单项。这可能吗?

2 个答案:

答案 0 :(得分:1)

您必须调用某些内容来修改::SetMenuItemInfo()等菜单项,然后调用::DrawMenuBar()重绘它。

答案 1 :(得分:1)

这不是您正在开发的平台的标准用户体验。我知道我会被这种行为所困扰。 Windows平台上的标准是在打开菜单之前按下元键。例如,在资源管理器中右键单击项目时按住shift可以提供修改的上下文菜单(例如,“打开方式...”或“打开新进程”)。

遵循平台惯例。我不认为Mac上的应用程序在Windows上的行为与我不一样,我不希望Windows上的应用程序在Mac上表现得像。如果您不遵守这些惯例,您就会面临一大群烦人的用户。 [参见Lotus Notes,SAP]