右键单击文件项 Visual Studio 解决方案资源管理器时,如何添加菜单和子菜单项?
我有一个菜单和三个子菜单项,当我右键单击解决方案资源管理器中的文件时,将显示如下图所示。
我尝试使用 .vsct 按钮,但它会显示在上下文菜单上,并且我无法添加子菜单
右键单击文件项 Visual Studio 解决方案资源管理器时,如何添加菜单和子菜单项?
我有一个菜单和三个子菜单项,当我右键单击解决方案资源管理器中的文件时,将显示如下图所示。
我尝试使用 .vsct 按钮,但它会显示在上下文菜单上,并且我无法添加子菜单
编写VSCT
文件有些棘手;您需要的是菜单和按钮的组合。首先,您需要IDM_VS_CTXT_ITEMNODE
在 VSCT 文件中引用该组。
<Group guid="guidCmdSet" id="grpIdMenuProjectItem" priority="0x0800">
<Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_ITEMNODE" />
</Group>
比您创建一个新菜单并将其添加到该组...
<Menu guid="guidCmdSet" id="sampleMenu" type="Menu" priority="0x1000">
<Parent guid="guidCmdSet" id="grpIdMenuProjectItem" />
<CommandFlag>IconAndText</CommandFlag>
<Strings>
<ButtonText>Sample Menu</ButtonText>
<CommandName>Sample Menu</CommandName>
</Strings>
</Menu>
对于子菜单项,需要另一个组,它将添加到菜单中...
<Group guid="guidCmdSet" id="sampleMenuGroup" priority="0x1000">
<Parent guid="guidCmdSet" id="sampleMenu"/>
</Group>
至少您使用按钮定义子菜单项并将它们添加到子菜单组...
<Button guid="guidCmdSet" id="sampleMenuItem" priority="0x1000" type="Button">
<Parent guid="guidCmdSet" id="sampleMenuGroup"/>
<CommandFlag>TextOnly</CommandFlag>
<Strings>
<ButtonText>Sample Menu Item 1</ButtonText>
<CommandName>sampleMenuItem1</CommandName>
</Strings>
</Button>
不要忘记定义所有符号,否则资源将无法编译。
<IDSymbol name="grpIdMenuProjectItem" value="0x1020"/>
<IDSymbol name="sampleMenu" value="0x1021"/>
<IDSymbol name="sampleMenuGroup" value="0x1022"/>
<IDSymbol name="sampleMenuItem" value="0x1023"/>
这就是你得到的......