Dodawanie elementów do okna dialogowego Dodawanie nowego elementu
Proces dodawania elementów do okna dialogowego Dodawanie nowego elementu rozpoczyna się od kluczy rejestru. Jak pokazano w poniższych wpisach rejestru, sekcja AddItemTemplates zawiera ścieżkę i nazwę katalogu, w którym są umieszczane elementy udostępnione w oknie dialogowym Dodawanie nowego elementu.
Uwaga
Tabela bezpośrednio po segmencie kodu zawiera dodatkowe informacje o wpisie rejestru.
Ta sekcja znajduje się w obszarze HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\14.0Exp\Projects.
Pierwszy identyfikator GUID to CLSID dla projektów tego typu; drugi identyfikator GUID wskazuje zarejestrowany typ projektu dla szablonów Dodaj elementy:
\{C061DB26-5833-11D2-96F5-0000000000000}\AddItemTemplates\TemplatesDir\{ACEF4EB2-57CF-11D2-96F4-000000000000}\1
@ = 6
TemplatesDir = \<Visual Studio SDK ścieżka> instalacji\VSIntegration\<SomeFolder>\<SomePackage>\<SomeProject>\<SomeProjectItems>
SortPriority = dword:00000064
Nazwisko | Typ | Dane (z pliku rgs ) | opis |
---|---|---|---|
@ (Wartość domyślna) | REG_SZ | #%IDS_ADDITEM_TEMPLATES_ENTRY% | Identyfikator zasobu dla pozycji Dodaj szablony elementów . |
Szablony valdir | REG_SZ | %TEMPLATE_PATH%\<SomeProjectItems> | Ścieżka elementów projektu wyświetlanych w oknie dialogowym kreatora Dodawanie nowego elementu . |
Val SortPriority | REG_DWORD | 100 (x64) | Określa kolejność sortowania w węźle drzewa plików wyświetlanych w oknie dialogowym Dodawanie nowego elementu . |
Uwaga
Identyfikatory GUID dla typów projektów Visual C# i Visual Basic są następujące:
- Visual C#: {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- Visual Basic: {F184B08F-C81C-45F6-A57F-5ABD99991F28F}
Katalog wymieniony dla szablonówDir, czyli %TEMPLATE_PATH%\<SomeProjectItems>, jest węzłem po lewej stronie drzewa okna dialogowego Dodawanie nowego elementu. Dodatkowe elementy w drzewie są oparte na podkatalogu w tym katalogu głównym. Pliki dostępne do dodania do projektu to elementy w okienku po prawej stronie okna dialogowego Dodawanie nowego elementu .
Zazwyczaj ten folder będzie zawierać pliki szablonów dla projektu, takie jak plik HTML szablonu lub plik cpp , oraz wszystkie pliki vsz do uruchamiania kreatorów. Aby kontrolować sposób wyświetlania elementów, możesz również dołączać pliki vsdir do lokalizowania nazw katalogów i ikon. Zlokalizowany ciąg jest podpis wyświetlany w oknie dialogowym reprezentującym ten węzeł w drzewie okna dialogowego Dodawanie nowego elementu.
Jednak nie musisz mieć wszystkiego w jednym pliku vsdir . Możesz mieć jeden plik vsdir dla każdego elementu w katalogu. Aby uzyskać więcej informacji, zobacz Pliki kreatora (vsz) i Opis katalogu szablonu (.vsdir).
Uwaga
Pliki .vsdir w katalogach szablonów są opcjonalne. Jeśli chcesz po prostu umieścić element projektu w katalogu i wyświetlić go w oknie dialogowym Dodawanie nowego elementu , możesz umieścić ten plik w katalogu templates określonym w instrukcji TemplatesDir . Plik zostanie wyświetlony w okienku po prawej stronie okna dialogowego Dodawanie nowego elementu dla tego projektu. Jeśli jednak chcesz wyświetlić zlokalizowane podpis dla pliku lub ikony, musisz uwzględnić co najmniej jeden plik vsdir w katalogu templates.
Grupowanie elementów projektu
Jeśli chcesz zawierać grupy szablonów w folderach w drzewie okna dialogowego Dodawanie nowego elementu , musisz mieć podkatalogi w katalogu głównym szablonu z elementami w nich. Po wyświetleniu użytkownikom okna dialogowego Dodawanie nowego elementu będą również widzieć podfoldery i wybrać elementy projektu.
Priorytet sortowania w segmencie kodu określa, gdzie ten katalog szablonu zostanie utworzony w drzewie względem innych elementów węzła drzewa. W oknie dialogowym Dodawanie nowego elementu priorytet sortowania to wszystko, co należy uwzględnić, aby elementy będą wyświetlane w prawidłowej lokalizacji w oknie dialogowym.
Możesz również zaimplementować interfejs w IVsFilterAddProjectItemDlg2 celu filtrowania wyświetlanych elementów w oknie dialogowym Dodawanie nowego elementu . Implementując ten interfejs, można skonfigurować jeden katalog szablonów na dysku, który zawiera na przykład 50 szablonów i plików kreatora. W ten sposób można mieć różne typy projektów z 20 plikami należącymi do jednego typu projektu, innymi 30 plikami należącymi do innego typu projektu i wszystkimi plikami dostępnymi w ogólnym typie projektu. W ten sposób, w zależności od tego, który szablon projektu jest tworzony, można wyświetlić inny zestaw plików szablonów.
Na przykład w projekcie Visual Basic mogą istnieć projekty internetowe i projekty klienckie. Formularze sieci Web nie są przydatnymi elementami do dodawania do projektu klienta, a formularze systemu Windows nie są przydatnymi elementami do dodawania do projektu serwera sieci Web. W związku z tym można utworzyć jeden katalog szablonu zawierający wszystkie pliki dla obu typów projektów. Następnie, implementując IVsFilterAddProjectItemDlg2element , można ukryć elementy, które nie powinny być wyświetlane na podstawie typu projektu lub ustawień projektu w projekcie.
Filtrowanie elementów projektu
IVsFilterAddProjectItemDlg2
Program zapewnia filtrowanie elementów w drzewie (okienko po lewej stronie) i plikach projektu (okienko po prawej stronie) w następujący sposób:
Według zlokalizowanych nazw (podpis wyświetlanych w oknie dialogowym znajdującym się w pliku vsdir) udostępnianym przez
IVsFilterAddProjectItemDlg
program .Według rzeczywistych nazw plików i folderów na dysku (nielokalizowany — brak pliku vsdir ) dostarczonego przez program
IVsFilterAddProjectItemDlg
.Według kategorii dostarczonej przez
IVsFilterAddProjectItemDlg2
element .Aby filtrować według kategorii, podaj ciąg kategorii do elementu w pliku vsdir , takim jak formularz internetowy lub element klienta w Visual Basic. Następnie kod okna dialogowego pobiera klasyfikację kategorii z pliku vsdir i przekazuje go do Ciebie. Następnie możesz przekazać te informacje do implementacji polecenia
IVsFilterAddProjectItemDlg2
, aby filtrować okno dialogowe Dodawanie nowego elementu według kategorii. Elementy można również filtrować pod kątem stron sieci Web lub jako przypadków aplikacji Win32 klienta. Ponadto można zidentyfikować elementy oznakowane w języku Visual C++ jako klasy programu Microsoft Foundation (MFC) lub aktywne elementy biblioteki szablonów (ATL). Po zidentyfikowaniu tych elementów system projektu może zdefiniować własne klasyfikacje, aby system mógł być filtrowany na podstawie kategorii i klasyfikacji.W przypadku zaimplementowania tej funkcji filtrowania nie trzeba mapować tabeli każdego elementu, który powinien być ukryty. Elementy można po prostu sklasyfikować w typach i umieścić klasyfikacje w pliku vsdir lub plikach. Następnie można ukryć dowolne elementy, które mają określoną klasyfikację, implementując interfejs. W ten sposób można ustawić elementy w oknie dialogowym Dodawanie nowego elementu dynamicznym na podstawie stanu w projekcie.