8

Visual Studio ソリューション エクスプローラーでファイル アイテムを右クリックしたときに、メニューとサブ メニュー アイテムを追加するにはどうすればよいですか?

下の図のように、ソリューション エクスプローラーでファイルを右クリックすると、1 つのメニューと 3 つのサブ メニュー項目が表示されます。

.vsct ボタンを使用してみましたが、コンテキスト メニューに表示され、サブ メニューを追加できません。

ここに画像の説明を入力

4

1 に答える 1

26

ファイルのオーサリングVSCTはややトリッキーです。必要なのは、メニューとボタンの組み合わせです。まず、IDM_VS_CTXT_ITEMNODEVSCT ファイルでグループを参照する必要があります。

<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"/>

そして、これがあなたが得るものです...

ここに画像の説明を入力

于 2013-11-02T22:22:07.650 に答える