Ajouter des éléments à la boîte de dialogue Ajouter un nouvel élément

Le processus d’ajout d’éléments à la boîte de dialogue Ajouter un nouvel élément commence par les clés de Registre. Comme indiqué dans les entrées de Registre suivantes, la section AddItemTemplates contient le chemin d’accès et le nom du répertoire dans lequel les éléments mis à disposition dans la boîte de dialogue Ajouter un nouvel élément sont placés.

Remarque

Le tableau suivant immédiatement le segment de code contient des informations supplémentaires sur l’entrée de Registre.

Cette section se trouve sous HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\14.0Exp\Projects.

Le premier GUID est le CLSID pour les projets de ce type ; le deuxième GUID indique le type de projet inscrit pour les modèles Ajouter des éléments :

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

@ = #6

TemplatesDir = \<Chemin> d’installation du Kit de développement logiciel (SDK) Visual Studio\VSIntegration\<SomeFolder>\<SomePackage>\<SomeProjectItems><>

SortPriority = dword :00000064

Nom Type Données (à partir du fichier .rgs ) Description
@ (valeur par défaut) REG_SZ #%IDS_ADDITEM_TEMPLATES_ENTRY% ID de ressource pour ajouter des modèles d’élément .
Val TemplatesDir REG_SZ %TEMPLATE_PATH%\<SomeProjectItems> Chemin des éléments du projet affichés dans la boîte de dialogue de l’Assistant Ajouter un nouvel élément .
Val SortPriority REG_DWORD 100 (x64) Détermine l’ordre de tri dans l’arborescence des fichiers affichés dans la boîte de dialogue Ajouter un nouvel élément .

Remarque

Les GUID pour les types de projet Visual C# et Visual Basic sont les suivants :

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

Le répertoire listé pour TemplatesDir, qui est %TEMPLATE_PATH%\<SomeProjectItems>, est le nœud situé à gauche de l’arborescence de la boîte de dialogue Ajouter un nouvel élément. Des éléments supplémentaires dans l’arborescence sont basés sur le sous-répertoire de ce répertoire racine. Les fichiers disponibles pour être ajoutés au projet sont les éléments du volet droit de la boîte de dialogue Ajouter un nouvel élément .

En règle générale, ce dossier contient les fichiers de modèle pour votre projet, tels qu’un fichier HTML ou .cpp de modèle, ainsi que tous les fichiers .vsz pour démarrer des Assistants. Pour contrôler l’affichage des éléments, vous pouvez également inclure des fichiers .vsdir pour localiser les noms et les icônes de répertoire. La chaîne localisée est la légende qui apparaît dans la boîte de dialogue qui représente ce nœud dans l’arborescence de boîte de dialogue Ajouter un nouvel élément.

Toutefois, vous n’avez pas besoin de tout avoir dans un fichier .vsdir . Vous pouvez avoir un fichier .vsdir pour chaque élément du répertoire. Pour plus d’informations, consultez les fichiers de l’Assistant (.vsz) et les fichiers de description du répertoire de modèle (.vsdir).

Remarque

Les fichiers .vsdir dans les répertoires de modèles sont facultatifs. Si vous souhaitez simplement placer un élément de projet dans le répertoire et l’afficher dans la boîte de dialogue Ajouter un nouvel élément , vous pouvez placer ce fichier dans le répertoire de modèles spécifié dans l’instruction TemplatesDir . Le fichier s’affiche ensuite dans le volet droit de la boîte de dialogue Ajouter un nouvel élément pour ce projet. Toutefois, si vous souhaitez afficher un légende localisé pour le fichier ou une icône, vous devez inclure au moins un fichier .vsdir dans le répertoire des modèles.

Regrouper les éléments de projet

Si vous souhaitez contenir des groupes de modèles dans les dossiers de l’arborescence de boîtes de dialogue Ajouter un nouvel élément , vous devez disposer de sous-répertoires sous le répertoire de modèle racine avec les éléments qu’ils contiennent. Lorsque la boîte de dialogue Ajouter un nouvel élément s’affiche aux utilisateurs, elles voient également les sous-dossiers et peuvent sélectionner des éléments de projet à partir d’eux.

La priorité de tri dans le segment de code détermine où ce répertoire de modèle sera créé dans l’arborescence par rapport à d’autres éléments du nœud d’arborescence. Pour la boîte de dialogue Ajouter un nouvel élément , la priorité de tri est tout ce que vous devez inclure afin que vos éléments soient affichés à l’emplacement approprié dans la boîte de dialogue.

Vous pouvez également implémenter l’interface IVsFilterAddProjectItemDlg2 pour filtrer ce qui s’affiche dans la boîte de dialogue Ajouter un nouvel élément . En implémentant cette interface, vous pouvez configurer un répertoire de modèle sur le disque qui contient, par exemple, 50 fichiers de modèle et d’Assistant. De cette façon, vous pouvez avoir différents types de projet avec 20 fichiers appartenant à un type de projet, les 30 autres fichiers appartenant à un autre type de projet et tous les fichiers disponibles dans un type général de projet. De cette façon, selon le modèle de projet créé, vous pouvez afficher un autre ensemble de fichiers de modèle.

Par exemple, dans un projet Visual Basic, vous pouvez avoir des projets Web et des projets clients. Les formulaires web ne sont pas utiles à ajouter à un projet client, et les formulaires Windows ne sont pas des éléments utiles à ajouter à un projet de serveur Web. Par conséquent, vous pouvez créer un répertoire de modèle qui contient tous les fichiers des deux types de projet. Ensuite, en implémentant IVsFilterAddProjectItemDlg2, vous pouvez masquer les éléments qui ne doivent pas être affichés en fonction du type de projet ou des paramètres de projet dans le projet.

Filtrer les éléments de projet

IVsFilterAddProjectItemDlg2 fournit le filtrage des éléments dans l’arborescence (volet gauche) et les fichiers projet (volet droit) de la manière suivante :

  • Par les noms localisés (légende s affichés dans la boîte de dialogue contenue dans le fichier .vsdir) fourni par IVsFilterAddProjectItemDlg.

  • Par les noms réels des fichiers et dossiers sur le disque (sans fichier .vsdir ) fournis par IVsFilterAddProjectItemDlg.

  • Par catégorie, fourni par IVsFilterAddProjectItemDlg2.

    Pour filtrer par catégorie, fournissez une chaîne de catégorie à un élément dans le fichier .vsdir , tel que le formulaire Web ou l’élément client en Visual Basic. Le code de la boîte de dialogue récupère ensuite la classification des catégories à partir du fichier .vsdir et vous le transmet. Vous pouvez ensuite transmettre ces informations à votre implémentation pour IVsFilterAddProjectItemDlg2 filtrer la boîte de dialogue Ajouter un nouvel élément par catégories. Vous pouvez également filtrer des éléments pour les pages Web ou en tant que cas d’application Win32 client. En outre, vous pouvez identifier les éléments étiquetés Visual C++ en tant qu’éléments MFC (Microsoft Foundation Classes) ou atL (Active Template Library). Lorsque vous identifiez ces éléments, le système de projet peut définir ses propres classifications afin que le système puisse être filtré en fonction des catégories et des classifications.

    Si vous implémentez cette fonctionnalité de filtre, vous n’avez pas besoin de mapper une table de chaque élément qui doit être masquée. Vous pouvez simplement classifier des éléments en types et placer les classifications dans le fichier ou les fichiers .vsdir . Vous pouvez ensuite masquer l’un des éléments qui ont une classification spécifique en implémentant l’interface. De cette façon, vous pouvez rendre les éléments de la boîte de dialogue Ajouter un nouvel élément dynamique en fonction de l’état dans le projet.