【发布时间】:2015-03-27 15:45:53
【问题描述】:
当使用IExecuteCommand 方法(如this blog post 中所述)实现上下文菜单外壳扩展时,给定的菜单选项如何变灰?
例如假设 shell 扩展提供了一些菜单选项,其中一些应该根据 shell 扩展计算的某些状态和条件灰显,例如:如果用户右键单击文件并且 shell 扩展检测到该文件有一些给定的属性,一些外壳扩展上下文菜单选项应该是灰色的。
如何使用IExecuteCommand 做到这一点?
或者是否应该为此使用另一个 Windows Shell COM 接口?
【问题讨论】:
-
不确定
IExecuteCommand,但可以使用IContextMenu。 InsertMenuItem 功能允许您设置有关项目的信息,包括 'MFS_DISABLED' 禁用菜单项并将其变灰以使其无法选择。 -
是的,我知道
IContextMenu是可能的,谢谢。 (事实上,在 Windows 7 中引入IExecuteCommand之前,我使用“好老”IContextMenu编写了 shell 扩展)。我只是好奇IExecuteCommand是否也能做到这一点,或者这个用于上下文菜单外壳扩展的新 COM 接口是否受限于不允许像此功能这样基本的东西。 (在那种情况下,坦率地说,我会定义IExecuteCommand几乎没用......)。但是我不确定,所以我想在这里问。谢谢。
标签: c++ windows shell winapi contextmenu