共用方式為


將項目新增至 [新增項目] 對話方塊

將專案新增至 [新增項目] 對話方塊的程序會以登錄機碼做為開頭。 如下列登錄項目所示,AddItemTemplates 區段包含目錄的路徑和名稱,其中會放置 [新增項目] 對話方塊中提供的項目。

注意

緊接在程式碼區段後面的資料表包含登錄項目的其他資訊。

本節位於 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\14.0Exp\Projects 底下。

第一個 GUID 是此類型專案的 CLSID;第二個 GUID 代表 [新增項目] 範本的已註冊項目類型:

\{C061DB26-5833-11D2-96F5-000000000000}\AddItemTemplates\TemplatesDir\{ACEF4EB2-57CF-11D2-96F4-000000000000}\1

@ = #6

TemplatesDir = \<Visual Studio SDK 安裝路徑>\VSIntegration\<SomeFolder>\<SomePackage>\<SomeProject>\<SomeProjectItems>

SortPriority = dword:00000064

名稱 類型 資料 (來自 .rgs 檔案) 描述
@ (預設值) REG_SZ #%IDS_ADDITEM_TEMPLATES_ENTRY% [新增項目] 範本的資源 ID。
Val TemplatesDir REG_SZ %TEMPLATE_PATH%\<SomeProjectItems> [新增項目] 精靈的對話方塊中顯示的專案項目路徑。
Val SortPriority REG_DWORD 100 (x64) 決定 [新增項目] 對話方塊中所顯示檔案樹狀節點中的排序順序。

注意

Visual C# 和 Visual Basic 專案類型的 GUID 如下所示:

  • Visual C#: {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
  • Visual Basic: {F184B08F-C81C-45F6-A57F-5ABD9991F28F}

針對 TemplatesDir 列出的目錄,也就是 %TEMPLATE_PATH%\<SomeProjectItems>,即 [新增項目] 對話方塊樹狀結構左側的節點。 樹狀結構中的其他元素是以該根目錄內的子目錄為基礎。 要新增至專案的檔案是 [新增專案] 對話方塊右窗格中的項目。

一般而言,此資料夾會包含專案的範本檔案,例如範本 HTML 或 .cpp 檔案,以及啟動精靈的任何 .vsz 檔案。 若要控制項目的顯示方式,您也可以包含 .vsdir 檔案來當地語系化目錄名稱和圖示。 當地語系化字串是出現在對話方塊中的標題,代表 [新增項目] 對話方塊樹狀目錄中的這個節點。

不過,您不需要在一個 .vsdir 檔案中擁有所有項目。 您可以針對目錄中的每個專案有一個 .vsdir 檔案。 如需詳細資訊,請參閱精靈 (.vsz) 檔案範本目錄描述 (.vsdir) 檔案

注意

範本目錄中的 .vsdir 檔案為選用。 如果您只想將專案元素放在目錄中,並將其顯示在 [新增項目] 對話方塊中,您可以將該檔案放在 TemplatesDir 陳述式中指定的範本目錄中。 然後,檔案會顯示在該專案的 [新增項目] 對話方塊的右窗格中。 不過,如果您想要顯示檔案或圖示的當地語系化標題,您必須在範本目錄中至少包含一個 .vsdir 檔案。

群組專案項目

如果您想要在 [新增項目] 對話方塊樹狀目錄的資料夾中包含範本群組,則必須在根目錄範本目錄底下包含項目。 當使用者顯示 [新增項目] 對話方塊時,他們也會看到子資料夾,而且能夠從子資料夾中選取專案元素。

程式碼區段中的排序優先順序會決定相對於樹狀節點其他元素,在樹狀結構中建立此範本目錄的位置。 針對 [新增項目] 對話方塊,排序優先順序是您必須包含的所有項目,如此一來,項目就會顯示在對話方塊中的正確位置。

您也可以實作 IVsFilterAddProjectItemDlg2 介面,以篩選 [新增項目] 對話方塊中所顯示的內容。 藉由實作此介面,您可以在硬碟上設定一個範本目錄,例如 50 個範本和精靈檔案。 如此一來,您可以擁有屬於一個專案類型的 20 個不同專案類型、屬於另一個專案類型的其他 30 個檔案,以及一般項目類型中所有可用的檔案。 透過此方式,根據建立的專案範本而定,您可以顯示一組不同的範本檔案。

例如,在 Visual Basic 專案中,您可能會有 Web 專案和用戶端專案。 Web 表單不是要新增至用戶端專案的實用項目,而 Windows 表單不是要新增至 Web 伺服器專案的實用項目。 因此,您可以建立一個範本目錄,其中包含這兩種類型的專案的所有檔案。 然後,藉由實作 IVsFilterAddProjectItemDlg2,您可以隱藏不應該根據專案中的專案類型或專案設定顯示的項目。

篩選專案項目

IVsFilterAddProjectItemDlg2 提供下列方式來篩選樹狀結構 (左窗格) 和專案檔案 (右窗格) 中的元素:

  • 藉由 IVsFilterAddProjectItemDlg 所提供之當地語系化名稱 (.vsdir 檔案包含的對話方塊中顯示的標題)。

  • 依據硬碟上檔案和資料夾的實際名稱 (未當地語系化 — 沒有 .vsdir 檔案) 提供 IVsFilterAddProjectItemDlg

  • 依類別,由 IVsFilterAddProjectItemDlg2 提供。

    若要依類別篩選,請將類別字串提供給 .vsdir 檔案中的項目,例如 Visual Basic 中的 Web 表單用戶端項目。 對話方塊程式碼接著會從 .vsdir 檔案擷取類別分類,並將它傳遞給您。 然後,您可以將該資訊傳遞至 IVsFilterAddProjectItemDlg2 的實作,以依類別篩選 [新增項目] 對話方塊。 您也可以篩選網頁的項目,或做為用戶端 Win32 應用程式案例。 此外,您可以將 Visual C++ 標籤的項目識別為 Microsoft Foundation Classes (MFC) 或使用中範本程式庫 (ATL) 項目。 當您識別這些項目時,專案系統可以定義自己的分類,以便根據類別和分類來篩選系統。

    如果您實作此篩選功能,則不需要對應應隱藏之每個項目的資料表。 您可以直接將項目分類成類型,並將分類放入一或多個 .vsdir 檔案中。 然後,您可以藉由實作介面來隱藏具有特定分類的任何項目。 如此一來,您就可以根據專案內的狀態,讓 [新增項目] 對話方塊中的項目變成動態。