1

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

4

2 回答 2

1

你必须调用一些东西来修改菜单项,::SetMenuItemInfo()然后调用 ::DrawMenuBar()来重绘它。

于 2012-11-04T23:52:23.740 回答
1

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

遵循平台约定。我不希望 Mac 上的应用程序表现得像 Windows 上的应用程序,我也不希望 Windows 上的应用程序表现得像 Mac 上的应用程序。如果您不遵守约定,您就会冒着一大群恼怒用户的风险。[参见 Lotus Notes,SAP]

于 2012-11-08T13:36:58.377 回答