다음을 통해 공유


새 항목 추가 대화 상자에 항목 추가

새 항목 추가 대화 상자에 항목을 추가하는 프로세스는 레지스트리 키로 시작합니다. 다음 레지스트리 항목에 표시된 것처럼 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

이름 Type 데이터(.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}

%TEMPLATE_PATH%\<SomeProjectItems>TemplatesDir에 대해 나열된 디렉터리가 새 항목 추가 대화 상자 트리의 왼쪽에 있는 노드입니다. 트리의 추가 요소는 해당 루트 디렉터리 내의 하위 디렉터리를 기준으로 합니다. 프로젝트에 추가할 수 있는 파일은 새 항목 추가 대화 상자의 오른쪽 창에 있는 항목입니다.

일반적으로 이 폴더에는 템플릿 HTML 또는 .cpp 파일과 같은 프로젝트의 템플릿 파일과 마법사를 시작하기 위한 .vsz 파일이 포함됩니다. 항목이 표시되는 방식을 제어하기 위해 디렉터리 이름 및 아이콘을 지역화하기 위한 .vsdir 파일을 포함할 수도 있습니다. 지역화된 문자열은 새 항목 추가 대화 상자 트리에서 이 노드를 나타내는 대화 상자에 표시되는 캡션입니다.

그러나 하나의 .vsdir 파일에 모든 항목이 포함될 필요는 없습니다. 디렉터리의 모든 항목에 대해 하나의 .vsdir 파일을 유지할 수 있습니다. 자세한 내용은 마법사(.vsz) 파일템플릿 디렉터리 설명(.vsdir) 파일을 참조하세요.

참고 항목

템플릿 디렉터리에 있는 .vsdir 파일은 선택 사항입니다. 프로젝트 요소를 디렉터리에 넣고 새 항목 추가 대화 상자에 표시하려는 경우 TemplatesDir 문에 지정된 템플릿 디렉터리에 해당 파일을 저장할 수 있습니다. 그러면 해당 프로젝트에 대한 새 항목 추가 대화 상자의 오른쪽 창에 파일이 표시됩니다. 그러나 파일 또는 아이콘에 대한 지역화된 캡션을 표시하려면 템플릿 디렉터리에 하나 이상의 .vsdir 파일을 포함해야 합니다.

프로젝트 항목 그룹화

새 항목 추가 대화 상자 트리의 폴더에 템플릿 그룹을 포함하려면 루트 템플릿 디렉터리 아래에 해당 항목이 포함된 하위 디렉터리가 있어야 합니다. 사용자에게 새 항목 추가 대화 상자가 표시되면 하위 폴더도 표시되고 해당 항목에서 프로젝트 요소를 선택할 수 있습니다.

코드 세그먼트의 정렬 우선 순위는 트리 노드의 다른 요소를 기준으로 트리에서 이 템플릿 디렉터리를 만들 위치를 결정합니다. 새 항목 추가 대화 상자의 경우 항목이 대화 상자의 올바른 위치에 표시되도록 하기 위해 정렬 우선 순위만 포함하면 됩니다.

새 항목 추가 대화 상자에 표시되는 항목을 필터링하도록 IVsFilterAddProjectItemDlg2 인터페이스를 구현할 수도 있습니다. 이 인터페이스를 구현하여 50개의 템플릿 및 마법사 파일을 포함하는 하나의 템플릿 디렉터리를 디스크에 설정할 수 있습니다. 이러한 방식으로 한 프로젝트 형식에 속하는 파일 20개, 다른 프로젝트 형식에 속하는 다른 30개 파일 및 일반 유형의 프로젝트에서 사용할 수 있는 모든 파일을 포함하는 다양한 프로젝트 형식을 유지할 수 있습니다. 이러한 방식으로 만들어진 프로젝트 템플릿에 따라 다른 템플릿 파일 집합을 표시할 수 있습니다.

예를 들어 Visual Basic 프로젝트에는 웹 프로젝트 및 클라이언트 프로젝트가 있을 수 있습니다. 웹 양식은 클라이언트 프로젝트에 추가하기에 유용한 항목이 아니며 Windows 양식은 웹 서버 프로젝트에 추가하기에 유용한 항목이 아닙니다. 따라서 두 유형의 프로젝트에 대한 모든 파일을 포함하는 하나의 템플릿 디렉터리를 만들 수 있습니다. 그런 다음, IVsFilterAddProjectItemDlg2를 구현하여 프로젝트의 유형 또는 프로젝트 설정에 따라 표시하면 안 되는 항목을 숨길 수 있습니다.

프로젝트 항목 필터링

IVsFilterAddProjectItemDlg2에서는 다음과 같은 방법으로 트리(왼쪽 창) 및 프로젝트 파일(오른쪽 창)의 요소를 필터링할 수 있습니다.

  • IVsFilterAddProjectItemDlg에서 제공하는 지역화된 이름(.vsdir 파일에 포함된 대화 상자에 표시되는 캡션) 기준

  • IVsFilterAddProjectItemDlg에서 제공하는 디스크의 파일 및 폴더 실제 이름(지역화되지 않음 - .vsdir 파일 아님) 기준

  • IVsFilterAddProjectItemDlg2에서 제공하는 범주 기준

    범주별로 필터링하려면 Visual Basic의 웹 양식 또는 클라이언트 항목과 같이 .vsdir 파일의 항목에 범주 문자열을 제공합니다. 그런 다음, 대화 상자 코드는 .vsdir 파일에서 범주 분류를 검색하여 사용자에게 전달합니다. 다시 해당 정보를 IVsFilterAddProjectItemDlg2 구현에 전달하여 범주별로 새 항목 추가 대화 상자를 필터링할 수 있습니다. 웹 페이지에 대해 또는 클라이언트 Win32 애플리케이션 사례로서 항목을 필터링할 수도 있습니다. 또한 Visual C++ 태그가 지정된 항목을 MFC(Microsoft Foundation Classs) 또는 ATL(활성 템플릿 라이브러리) 항목으로 식별할 수 있습니다. 이러한 항목을 식별할 때 프로젝트 시스템은 범주 및 분류에 따라 시스템을 필터링할 수 있도록 자체 분류를 정의할 수 있습니다.

    이 필터 기능을 구현하는 경우 숨겨야 하는 모든 항목의 테이블을 매핑할 필요가 없습니다. 항목을 형식으로 분류하고 분류를 .vsdir 파일에 넣을 수 있습니다. 그런 다음, 인터페이스를 구현하여 특정 분류가 있는 항목을 숨길 수 있습니다. 이러한 방식으로 프로젝트 내의 상태에 따라 새 항목 추가 대화 상자의 항목을 동적으로 만들 수 있습니다.