Condividi tramite


Aggiungere elementi alla finestra di dialogo Aggiungi nuovo elemento

Il processo di aggiunta di elementi alla finestra di dialogo Aggiungi nuovo elemento inizia con le chiavi del Registro di sistema. Come illustrato nelle voci del Registro di sistema seguenti, la sezione AddItemTemplates contiene il percorso e il nome della directory in cui vengono inseriti gli elementi resi disponibili nella finestra di dialogo Aggiungi nuovo elemento .

Nota

La tabella immediatamente successiva al segmento di codice contiene informazioni aggiuntive sulla voce del Registro di sistema.

Questa sezione si trova in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\14.0Exp\Projects.

Il primo GUID è il CLSID per i progetti di questo tipo; il secondo GUID indica il tipo di progetto registrato per i modelli Aggiungi elementi:

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

@ = #6

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

SortPriority = dword:00000064

Nome Type Dati (dal file con estensione rgs ) Descrizione
@ (impostazione predefinita) REG_SZ #%IDS_ADDITEM_TEMPLATES_ENTRY% ID risorsa per Aggiungere modelli di elemento .
Modelli valDir REG_SZ %TEMPLATE_PATH%\<SomeProjectItems> Percorso degli elementi del progetto visualizzati nella finestra di dialogo per la procedura guidata Aggiungi nuovo elemento .
Val SortPriority REG_DWORD 100 (x64) Determina l'ordinamento nel nodo albero dei file visualizzati nella finestra di dialogo Aggiungi nuovo elemento .

Nota

I GUIDS per i tipi di progetto Visual C# e Visual Basic sono i seguenti:

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

La directory elencata per TemplatesDir, % TEMPLATE_PATH%\<SomeProjectItems>, è il nodo a sinistra dell'albero della finestra di dialogo Aggiungi nuovo elemento . Gli elementi aggiuntivi nell'albero si basano sulla sottodirectory all'interno di tale directory radice. I file disponibili per l'aggiunta al progetto sono gli elementi nel riquadro destro della finestra di dialogo Aggiungi nuovo elemento .

In genere, questa cartella conterrà i file modello per il progetto, ad esempio un file HTML o cpp modello, e qualsiasi file vsz per l'avvio delle procedure guidate. Per controllare la modalità di visualizzazione degli elementi, è anche possibile includere file con estensione vsdir per la localizzazione dei nomi e delle icone delle directory. La stringa localizzata è la didascalia visualizzata nella finestra di dialogo che rappresenta questo nodo nell'albero della finestra di dialogo Aggiungi nuovo elemento.

Tuttavia, non è necessario avere tutti gli elementi in un file con estensione vsdir . È possibile avere un file con estensione vsdir per ogni elemento nella directory. Per altre informazioni, vedere File della procedura guidata (vsz) e file di descrizione della directory dei modelli (vsdir).

Nota

I file con estensione vsdir nelle directory modello sono facoltativi. Se si vuole solo inserire un elemento di progetto nella directory e visualizzarlo nella finestra di dialogo Aggiungi nuovo elemento , è possibile inserire tale file nella directory templates specificata nell'istruzione TemplatesDir . Il file verrà quindi visualizzato nel riquadro destro della finestra di dialogo Aggiungi nuovo elemento per il progetto. Tuttavia, se si desidera visualizzare un didascalia localizzato per il file o un'icona, è necessario includere almeno un file vsdir nella directory templates.

Raggruppare gli elementi del progetto

Se si desidera contenere gruppi di modelli in cartelle nell'albero della finestra di dialogo Aggiungi nuovo elemento , è necessario disporre di sottodirectory nella directory modello radice con gli elementi in essi contenuti. Quando viene visualizzata la finestra di dialogo Aggiungi nuovo elemento agli utenti, visualizzeranno anche le sottocartelle e potranno selezionare gli elementi del progetto.

La priorità di ordinamento nel segmento di codice determina dove verrà creata la directory del modello nell'albero rispetto ad altri elementi del nodo della struttura ad albero. Per la finestra di dialogo Aggiungi nuovo elemento , la priorità di ordinamento è tutto ciò che è necessario includere in modo che gli elementi vengano visualizzati nella posizione corretta nella finestra di dialogo.

È anche possibile implementare l'interfaccia IVsFilterAddProjectItemDlg2 per filtrare gli elementi visualizzati nella finestra di dialogo Aggiungi nuovo elemento . Implementando questa interfaccia, è possibile configurare una directory modello su disco contenente, ad esempio, 50 file modello e procedura guidata. In questo modo, è possibile avere tipi di progetto diversi con 20 file che appartengono a un tipo di progetto, gli altri 30 file appartenenti a un altro tipo di progetto e tutti i file disponibili in un tipo generale di progetto. In questo modo, a seconda del modello di progetto creato, è possibile visualizzare un set diverso di file modello.

In un progetto Visual Basic, ad esempio, potrebbero essere presenti progetti Web e progetti client. I Web form non sono elementi utili da aggiungere a un progetto client e Windows Form non sono elementi utili da aggiungere a un progetto server Web. Pertanto, è possibile creare una directory modello che contiene tutti i file per entrambi i tipi di progetto. Implementando IVsFilterAddProjectItemDlg2quindi , è possibile nascondere gli elementi che non devono essere visualizzati in base al tipo di progetto o alle impostazioni del progetto nel progetto.

Filtrare gli elementi del progetto

IVsFilterAddProjectItemDlg2 fornisce per filtrare gli elementi nell'albero (riquadro sinistro) e i file di progetto (riquadro destro) nei modi seguenti:

  • In base ai nomi localizzati (didascalia visualizzati nella finestra di dialogo contenuta nel file con estensione vsdir) fornito da IVsFilterAddProjectItemDlg.

  • In base ai nomi effettivi dei file e delle cartelle sul disco (non localizzato , nessun file vsdir ) fornito da IVsFilterAddProjectItemDlg.

  • Per categoria, fornita da IVsFilterAddProjectItemDlg2.

    Per filtrare in base alla categoria, specificare una stringa di categoria per un elemento nel file vsdir , ad esempio modulo Web o elemento Client in Visual Basic. Il codice della finestra di dialogo recupera quindi la classificazione delle categorie dal file vsdir e la passa all'utente. È quindi possibile passare tali informazioni all'implementazione di per filtrare la finestra di IVsFilterAddProjectItemDlg2 dialogo Aggiungi nuovo elemento in base alle categorie. È anche possibile filtrare gli elementi per le pagine Web o come casi applicazione Win32 client. Inoltre, è possibile identificare gli elementi con tag di Visual C++ come elementi di Microsoft Foundation Classes (MFC) o active template library (ATL). Quando si identificano questi elementi, il sistema di progetto può definire le proprie classificazioni in modo che il sistema possa essere filtrato in base a categorie e classificazioni.

    Se si implementa questa funzionalità di filtro, non è necessario eseguire il mapping di una tabella di ogni elemento che deve essere nascosto. È possibile classificare semplicemente gli elementi in tipi e inserire le classificazioni nel file o nei file con estensione vsdir . È quindi possibile nascondere uno qualsiasi degli elementi con una classificazione specifica implementando l'interfaccia . In questo modo, è possibile rendere dinamici gli elementi nella finestra di dialogo Aggiungi nuovo elemento in base allo stato all'interno del progetto.