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