Menu 元素

定義一個功能表項。 這些是六種功能表:操作、功能表、MenuController、MenuControllerLatched、Toolbar 和 ToolWindowToolbar。

語法

<Menu guid="guidMyCommandSet" id="MyCommand" priority="0x100" type="button">
  <Parent>... </Parent>
  <CommandFlag>... </CommandFlag>
  <Strings>... </Strings>
</Menu>

屬性和元素

下列章節說明屬性、子元素和父元素。

屬性

屬性 描述
guid 必要。 GUID/ID 命令標識符的 GUID。
id 必要。 GUID/ID 命令標識碼的標識碼。
priority 選擇性。 數值,指定功能表群組中功能表的相對位置。
toolbarPriorityInBand 選擇性。 數值,指定停駐視窗時工具列在頻帶中的相對位置。
type 選擇性。 指定項目類型的列舉值。

如果沒有,默認類型為 Menu。

上下文
當使用者以滑鼠右鍵按下視窗時顯示的快捷方式選單。 快捷方式選單具有下列特性:

- 當功能表顯示為快捷方式選單時,不會使用 [父 ] 和 [優先順序 ] 字段。
- 可作為子功能表,也可以做為快捷方式功能表。 在此情況下, 會同時遵守 [群組標識符 ] 和 [優先順序] 字段。
- 並非一律可用。

只有在下列條件成立時,才會顯示快捷方式功能表:

- 裝載它的視窗隨即顯示。
- VSPackage 中的滑鼠處理程式會偵測以滑鼠右鍵按兩下視窗,然後呼叫處理命令的方法。
- 快捷方式功能表是藉由呼叫 ShowContextMenu 方法(建議的方法)或 ShowContextMenu 方法來顯示。

功能表
提供下拉功能表。 下拉功能表具有下列特性:

- 尊重父代在其定義中。
- 必須有父群組或 CommandPlacement 給群組。
- 可以是任何其他功能表的子功能表。
- 每當其父功能表顯示時,就會自動顯示。
- 不需要實作任何 VSPackage 程式代碼,才能顯示它。

MenuController
提供分割按鈕下拉功能表,通常用於工具列。 MenuController 功能表具有下列特性:

- 必須透過 Parent 或 CommandPlacement 包含在另一個功能表中。
- 尊重父代在其定義中。
- 可以有任何類型的功能表作為其父代。
- 每當其父功能表顯示時,就會自動提供使用。
- 不需要程序設計支援,才能顯示功能表。

分割按鈕選單中的命令會顯示在功能表按鈕上。 顯示的指令具有下列其中一個特性:

- 這是當命令仍顯示並啟用時所使用的最後一個命令。
- 這是第一個顯示的命令。

MenuControllerLatched
提供分割按鈕下拉功能表,命令可藉由將命令標示為閂鎖,指定為預設選取範圍。

閂鎖命令是在功能表中標示為選取的命令,通常是藉由顯示複選標記。 如果命令在 介面的 方法IOleCommandTarget實作中QueryStatus設定OLECMDF_LATCHED旗標,則可以將命令標示為閂鎖。 MenuControllerLatched 功能表具有下列特性:

- 必須透過父群組或 CommandPlacement 包含在另一個功能表中。
- 尊重父代在其定義中。
- 可以有任何類型的功能表作為其父代。
- 每當其父功能表顯示時,就會提供使用。
- 不需要程序設計支援,才能顯示功能表。

分割按鈕選單中的命令會顯示在功能表按鈕上。 顯示的指令具有下列其中一個特性:

- 這是閂鎖的第一個顯示命令。
- 這是第一個顯示的命令。

工具列
提供工具列。 工具列具有下列特性:

- 忽略其定義中的 Parent。
- 無法成為任何群組的子功能表,即使是使用 CommandPlacement 也一樣。
- 一律可以按兩下 [檢視] 選單上的[工具列] 來顯示。
- 可以使用 VisibilityItem 來顯示
- 不需要任何程式代碼來建立它。 如需如何建立工具列的範例,請參閱 新增工具列

ToolWindowToolbar
提供附加至特定工具視窗的工具列,就像工具列附加至開發環境一樣。

- 忽略其定義中的 Parent。
- 無法成為任何群組的子功能表,即使是使用 CommandPlacement 也一樣。
- 只有在顯示裝載工具列的工具視窗,且 VSPackage 明確地將工具列新增至工具視窗時,才會顯示。 當工具視窗是從工具視窗框架取得工具列主機屬性,然後呼叫 方法,以取得工具列主機屬性(如 介面所表示 IVsToolWindowToolbarHost )來建立時,通常會完成此 AddToolbar 動作。
Condition 選擇性。 請參閱 條件屬性

子元素

元素 描述
上層 選擇性。 功能表項的父元素。
CommandFlag 必要。 請參閱 Command flag 元素。 功能表的有效 CommandFlag 值如下所示:

- AlwaysCreate
- DefaultDocked
- DefaultInvisible - 此旗標不會影響工具列的顯示。
- DontCache
- DynamicVisibility - 此旗標不會影響工具列的顯示。
- IconAndText
- NoCustomize
- NotInTBList
- NoToolbarClose
- TextChanges
- TextIsAnchorCommand
字串 必要。 請參閱 Strings 元素。 必須定義子 ButtonText 專案。
註釋 選擇性批注。

父元素

元素 描述
Menus 元素 定義 VSPackage 實作的所有功能表。

範例

<Menu guid="cmdGuidWidgetCommands" id="menuIDEditWidget"
  priority="0x0002" type="Menu">
  <Parent guid="cmdSetGuidWidgetCommands" id="groupIDFileEdit"/>
  <CommandFlag>AlwaysCreate</CommandFlag>
  <Strings>
    <ButtonText>Edit Widget</ButtonText>
  </Strings>
</Menu>

另請參閱