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>