命令設計

當您將命令新增至 VSPackage 時,您必須指定要顯示的位置、可用時機,以及如何處理它。

定義命令

若要定義新的命令,請在 VSPackage 專案中新增 Visual Studio 命令資料表 (.vsct) 檔案。 如果您已使用 Visual Studio 套件範本建立 VSPackage,專案會包含下列其中一個檔案。 如需詳細資訊,請參閱 Visual Studio 命令資料表 (.vsct) 檔案

Visual Studio 會合併它找到的所有 .vsct 檔案,以便顯示命令。 由於這些檔案與 VSPackage 二進位檔不同,因此 Visual Studio 不需要載入套件來尋找命令。 如需詳細資訊,請參閱 VSPackage 如何新增使用者介面元素

Visual Studio 會使用 ProvideMenuResourceAttribute 註冊屬性來定義功能表資源和命令。 如需詳細資訊,請參閱命令實作

命令可以在執行階段以許多不同的方式變更。 它們可以顯示或隱藏、啟用或停用。 它們可以顯示不同的文字或圖示,或包含不同的值。 在 Visual Studio 載入 VSPackage 之前,可能會執行大量的自訂。 如需詳細資訊,請參閱 VSPackage 如何新增使用者介面元素

命令處理常式

當您建立命令時,必須提供事件處理常式來執行命令。 如果使用者選取命令,則必須適當地路由傳送該命令。 路由命令表示將它傳送至正確的 VSPackage 以啟用或停用它、隱藏或顯示它,並在使用者選擇這麼做時加以執行。 如需詳細資訊,請參閱命令路由演算法

Visual Studio 命令環境

Visual Studio 可以託管任意數目的 VSPackage,而且每個 VSPackage 都可以貢獻自己的命令集。 環境只會顯示適合目前工作的命令。 如需詳細資訊,請參閱命令可用性選取內容物件

VSPackage 會定義新的命令、功能表、工具列或快速鍵功能表,可透過參考原生或受控元件中資源的登錄項目,在安裝時間將其命令資訊提供給 Visual Studio。 然後,每個資源都會參考二進位資料資源 (.cto) 檔案,當您編譯 Visual Studio 命令資料表 (.vsct) 檔案時會產生此檔案。 這可讓 Visual Studio 提供合併的命令集、功能表和工具列,而不需要載入每個已安裝的 VSPackage。

命令組織

環境會依群組、優先順序和功能表定位命令。

  • 群組是相關命令的邏輯集合,例如 [剪下][複製][貼上] 命令群組。 群組是出現在功能表上的命令。

  • 優先順序決定了群組中個別命令出現在功能表上的順序。

  • 功能表可做為群組的容器。

    環境會預先定義一些命令、群組和功能表。 如需詳細資訊,請參閱預設命令、群組和工具列位置

    命令可以指派給主要群組。 主要群組會控制命令在主功能表結構和 [自訂] 對話方塊中的位置。 命令可以出現在多個群組中;例如,命令可以位於主功能表上、快速鍵功能表上,以及工具列上。 如需詳細資訊,請參閱 VSPackage 如何新增使用者介面元素

命令路由

針對 VSPackage 叫用和路由命令的程式與在物件執行個體上呼叫方法的程序不同。

環境會依序將命令從最內部的 (本機) 命令內容路由傳送至最外層 (全域) 內容。 能夠執行命令的第一個內容是處理它的內容。 如需詳細資訊,請參閱命令路由演算法

在大部分情況下,環境會透過使用 IOleCommandTarget 介面來處理命令。 因為命令路由配置可讓許多不同的物件處理命令,因此 IOleCommandTarget 可由任意數目的物件實作;這些物件包括 Microsoft ActiveX 控制項、視窗檢視實作、文件物件、專案階層和 VSPackage 物件本身 (適用於全域命令)。 在某些情況下,例如,階層中的路由命令必須實作 IVsHierarchy 介面。

標題 描述
命令實作 描述如何在 VSPackage 中實作命令。
命令可用性 描述 Visual Studio 內容如何決定哪些命令可供使用。
路由傳送命令的演算法 描述 Visual Studio 命令路由架構如何讓不同的 VSPackage 處理命令。
命令放置指導方針 建議如何在 Visual Studio 環境中放置命令。
VSPackage 如何新增使用者介面元素 描述 VSPackage 如何充分利用 Visual Studio 命令架構。
預設的命令、群組及工具列放置 描述 VSPackage 如何最完善地使用 Visual Studio 中包含的命令。
管理 VSPackages 描述 Visual Studio 如何載入 VSPackage。
Visual Studio 命令表 (.vsct) 檔案 提供 XML 型 .vsct 檔案的相關資訊,這些檔案可用來描述 VSPackages 中命令的配置和外觀。