Agregar elementos al cuadro de diálogo Agregar nuevo elemento

El proceso para agregar elementos al cuadro de diálogo Agregar nuevo elemento comienza con las claves del Registro. Como se muestra en las siguientes entradas del Registro, la sección AddItemTemPlates contiene la ruta de acceso y el nombre del directorio en el que se colocan los elementos disponibles en el cuadro de diálogo Agregar nuevo elemento .

Nota:

La tabla que sigue inmediatamente al segmento de código contiene información adicional sobre la entrada del Registro.

Esta sección se encuentra en HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\14.0Exp\Projects.

El primer GUID es clSID para proyectos de este tipo; el segundo GUID indica el tipo de proyecto registrado para las plantillas Agregar elementos:

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

@ = #6

TemplatesDir = \<Visual Studio SDK installation path>\VSIntegration\<SomeFolder>\<SomePackage>\<SomeProject\<SomeProjectItems>>

SortPriority = dword:00000064

Nombre Tipo Datos (del archivo .rgs ) Descripción
@ (valor predeterminado) REG_SZ #%IDS_ADDITEM_TEMPLATES_ENTRY% Identificador de recurso para agregar plantillas de elemento .
Val TemplatesDir REG_SZ %TEMPLATE_PATH%\<SomeProjectItems> Ruta de acceso de los elementos del proyecto que se muestran en el cuadro de diálogo para el Asistente para agregar nuevo elemento .
Val SortPriority REG_DWORD 100 (x64) Determina el criterio de ordenación en el nodo de árbol de los archivos mostrados en el cuadro de diálogo Agregar nuevo elemento .

Nota:

Los GUIDS para los tipos de proyecto de Visual C# y Visual Basic son los siguientes:

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

El directorio enumerado para TemplatesDir, que es %TEMPLATE_PATH%\<SomeProjectItems>, es el nodo del lado izquierdo del árbol del cuadro de diálogo Agregar nuevo elemento . Los elementos adicionales del árbol se basan en el subdirectorio dentro de ese directorio raíz. Los archivos disponibles para agregarse al proyecto son los elementos del panel derecho del cuadro de diálogo Agregar nuevo elemento .

Normalmente, esta carpeta contendrá los archivos de plantilla del proyecto, como un archivo HTML de plantilla o .cpp , y los archivos .vsz para iniciar asistentes. Para controlar cómo se muestran los elementos, también puede incluir archivos .vsdir para localizar los nombres de directorio e iconos. La cadena localizada es el subtítulo que aparece en el cuadro de diálogo que representa este nodo en el árbol del cuadro de diálogo Agregar nuevo elemento.

Sin embargo, no es necesario tener todo en un archivo .vsdir . Puede tener un archivo .vsdir para cada elemento del directorio. Para obtener más información, vea Archivos del Asistente (.vsz) y Archivos de descripción del directorio de plantillas (.vsdir).

Nota:

Los archivos .vsdir de los directorios de plantilla son opcionales. Si solo desea colocar un elemento de proyecto en el directorio y mostrarlo en el cuadro de diálogo Agregar nuevo elemento , puede colocar ese archivo en el directorio templates especificado en la instrucción TemplatesDir . A continuación, el archivo se mostrará en el panel derecho del cuadro de diálogo Agregar nuevo elemento para ese proyecto. Sin embargo, si desea mostrar un subtítulo localizado para el archivo o un icono, debe incluir al menos un archivo .vsdir en el directorio templates.

Agrupar elementos de proyecto

Si desea contener grupos de plantillas en carpetas en el árbol de cuadros de diálogo Agregar nuevo elemento , debe tener subdirectorios en el directorio de plantilla raíz con los elementos de ellos. Cuando se muestra el cuadro de diálogo Agregar nuevo elemento a los usuarios, también verán las subcarpetas y podrán seleccionar los elementos del proyecto de ellos.

La prioridad de ordenación del segmento de código determina dónde se creará este directorio de plantilla en el árbol en relación con otros elementos del nodo de árbol. Para el cuadro de diálogo Agregar nuevo elemento , la prioridad de ordenación es toda la que debe incluir para que los elementos se muestren en la ubicación correcta en el cuadro de diálogo.

También puede implementar la IVsFilterAddProjectItemDlg2 interfaz para filtrar lo que se muestra en el cuadro de diálogo Agregar nuevo elemento . Al implementar esta interfaz, puede configurar un directorio de plantilla en el disco que contiene, por ejemplo, 50 archivos de plantilla y asistente. De este modo, puede tener diferentes tipos de proyecto con 20 archivos que pertenecen a un tipo de proyecto, los otros 30 archivos que pertenecen a otro tipo de proyecto y todos los archivos disponibles en un tipo general de proyecto. De esta manera, dependiendo de la plantilla de proyecto que se cree, puede mostrar un conjunto diferente de archivos de plantilla.

Por ejemplo, en un proyecto de Visual Basic, es posible que tenga proyectos web y proyectos cliente. Los formularios web no son elementos útiles para agregar a un proyecto de cliente y los formularios windows forms no son elementos útiles para agregar a un proyecto de servidor web. Por lo tanto, puede crear un directorio de plantilla que contenga todos los archivos de ambos tipos de proyecto. Después, mediante la implementación IVsFilterAddProjectItemDlg2de , puede ocultar los elementos que no se deben mostrar en función del tipo de configuración del proyecto o del proyecto en el proyecto.

Filtrar elementos del proyecto

IVsFilterAddProjectItemDlg2 proporciona el filtrado de elementos en el árbol (panel izquierdo) y los archivos de proyecto (panel derecho) de las maneras siguientes:

  • Por los nombres localizados (subtítulo que se muestran en el cuadro de diálogo contenido en el archivo .vsdir) proporcionado por IVsFilterAddProjectItemDlg.

  • Por los nombres reales de los archivos y carpetas en el disco (no localizado , ningún archivo .vsdir ) proporcionado por IVsFilterAddProjectItemDlg.

  • Por categoría, proporcionado por IVsFilterAddProjectItemDlg2.

    Para filtrar por categoría, proporcione una cadena de categoría a un elemento del archivo .vsdir , como formulario web o elemento cliente en Visual Basic. A continuación, el código del cuadro de diálogo recupera la clasificación de categorías del archivo .vsdir y la pasa a usted. A continuación, puede pasar esa información a la implementación de para filtrar el cuadro de IVsFilterAddProjectItemDlg2 diálogo Agregar nuevo elemento por categorías. También puede filtrar elementos para páginas web o como casos de aplicación Win32 cliente. Además, puede identificar elementos etiquetados de Visual C++ como elementos de Microsoft Foundation Classes (MFC) o elementos de biblioteca de plantillas activas (ATL). Al identificar estos elementos, el sistema de proyecto puede definir sus propias clasificaciones para que el sistema se pueda filtrar en función de categorías y clasificaciones.

    Si implementa esta funcionalidad de filtro, no tiene que asignar una tabla de todos los elementos que se deben ocultar. Simplemente puede clasificar elementos en tipos y colocar las clasificaciones en el archivo o los archivos .vsdir . A continuación, puede ocultar cualquiera de los elementos que tienen una clasificación específica mediante la implementación de la interfaz . De este modo, puede hacer que los elementos del cuadro de diálogo Agregar nuevo elemento sean dinámicos en función del estado del proyecto.