명령 디자인

VSPackage에 명령을 추가할 때 표시되는 위치, 사용 가능한 시기, 처리 방법을 지정해야 합니다.

명령 정의

새 명령을 정의하려면 VSPackage 프로젝트에 Visual Studio 명령 테이블(.vsct) 파일을 포함합니다. Visual Studio 패키지 템플릿을 사용하여 VSPackage를 만든 경우 프로젝트에는 이러한 파일 중 하나가 포함됩니다. 자세한 내용은 Visual Studio 명령 테이블(.vsct) 파일을 참조하세요.

Visual Studio는 명령을 표시할 수 있도록 찾는 모든 .vsct 파일을 병합합니다. 해당 파일은 VSPackage 이진 파일과 구별되므로 Visual Studio는 명령을 찾기 위해 패키지를 로드할 필요가 없습니다. 자세한 내용은 VSPackages에서 사용자 인터페이스 요소를 추가하는 방법을 참조하세요.

Visual Studio는 ProvideMenuResourceAttribute 등록 특성을 사용하여 메뉴 리소스 및 명령을 정의합니다. 자세한 내용은 명령줄 구현을 참조하세요.

여러 가지 방법으로 런타임에 명령을 변경할 수 있습니다. 표시하거나 숨기거나, 사용하거나 사용하지 않도록 설정할 수 있습니다. 다양한 텍스트 또는 아이콘을 표시하거나 다양한 값을 포함할 수 있습니다. Visual Studio에서 VSPackage를 로드하기 전에 많은 사용자 지정을 수행할 수 있습니다. 자세한 내용은 VSPackages에서 사용자 인터페이스 요소를 추가하는 방법을 참조하세요.

명령 처리기

명령을 만들 때 명령을 실행하려면 이벤트 처리기를 제공해야 합니다. 사용자가 명령을 선택하는 경우 명령은 적절하게 라우팅되어야 합니다. 명령을 라우팅한다는 것은 올바른 VSPackage로 전송하여 사용하거나 사용하지 않도록 설정하고, 숨기거나 표시하고, 사용자가 선택한 대로 실행하는 것을 의미합니다. 자세한 내용은 명령 라우팅 알고리즘을 참조하세요.

Visual Studio 명령 환경

Visual Studio는 제한 없이 VSPackage를 호스트할 수 있으며 각 VSPackage는 자체 명령 세트를 제공할 수 있습니다. 환경에는 현재 작업에 적합한 명령만 표시됩니다. 자세한 내용은 명령 가용성선택 컨텍스트 개체를 참조하세요.

새 명령, 메뉴, 도구 모음 또는 바로 가기 메뉴를 정의하는 VSPackage는 네이티브 또는 관리형 어셈블리의 리소스를 참조하는 레지스트리 항목을 통해 설치 시간에 Visual Studio에 명령 정보를 제공합니다. 그런 다음, 각 리소스는 Visual Studio 명령 테이블(.vsct) 파일을 컴파일할 때 생성되는 이진 데이터 리소스(.cto) 파일을 참조합니다. 이렇게 하면 Visual Studio에서 설치된 모든 VSPackage를 로드하지 않고도 병합된 명령 세트, 메뉴, 도구 모음을 제공할 수 있습니다.

명령 구성

환경은 그룹, 우선 순위, 메뉴별로 명령을 배치합니다.

  • 그룹은 관련 명령의 논리적 컬렉션입니다(예: 잘라내기, 복사, 붙여넣기 명령 그룹). 그룹은 메뉴에 표시되는 명령입니다.

  • 우선 순위는 그룹의 개별 명령이 메뉴에 표시되는 순서를 결정합니다.

  • 메뉴는 그룹의 컨테이너 역할을 합니다.

    환경은 일부 명령, 그룹, 메뉴를 미리 정의합니다. 자세한 내용은 기본 명령, 그룹 및 도구 모음 배치를 참조하세요.

    기본 그룹에 명령을 할당할 수 있습니다. 기본 그룹은 주 메뉴 구조와 사용자 지정 대화 상자에서 명령의 위치를 제어합니다. 명령은 여러 그룹에 표시될 수 있습니다. 예를 들어 명령은 주 메뉴, 바로 가기 메뉴, 도구 모음에 있을 수 있습니다. 자세한 내용은 VSPackages에서 사용자 인터페이스 요소를 추가하는 방법을 참조하세요.

명령 라우팅

VSPackages에 대한 명령을 호출하고 라우팅하는 프로세스는 개체 인스턴스에서 메서드를 호출하는 프로세스와 다릅니다.

환경은 현재 선택을 기반으로 하는 가장 안쪽(로컬) 명령 컨텍스트에서 가장 바깥쪽(전역) 컨텍스트로 명령을 순차적으로 라우팅합니다. 명령을 실행할 수 있는 첫 번째 컨텍스트는 명령을 처리하는 컨텍스트입니다. 자세한 내용은 명령 라우팅 알고리즘을 참조하세요.

대부분의 경우 환경은 IOleCommandTarget 인터페이스를 사용하여 명령을 처리합니다. 명령 라우팅 체계를 사용하면 다양한 개체가 명령을 처리할 수 있으므로 IOleCommandTarget는 여러 개체를 통해 구현할 수 있습니다. 여기에는 Microsoft ActiveX 컨트롤, 창 보기 구현, 문서 개체, 프로젝트 계층 구조, VSPackage 개체 자체(전역 명령의 경우)가 포함됩니다. 일부 특수한 경우에는(예: 계층 구조의 라우팅 명령) IVsHierarchy 인터페이스를 구현해야 합니다.

제목 설명
명령 구현 VSPackage에서 명령을 구현하는 방법을 설명합니다.
명령 가용성 Visual Studio 컨텍스트에서 사용 가능한 명령을 결정하는 방법을 설명합니다.
명령 라우팅 알고리즘 Visual Studio 명령 라우팅 아키텍처를 통해 다양한 VSPackage에서 명령을 처리하는 방법을 설명합니다.
명령 배치 지침 Visual Studio 환경에서 명령을 배치하는 방법을 제안합니다.
VSPackage에서 사용자 인터페이스 요소를 추가하는 방법 VSPackage가 Visual Studio 명령 아키텍처를 가장 잘 활용하는 방법을 설명합니다.
기본 명령, 그룹, 도구 모음 배치 VSPackage가 Visual Studio에 포함된 명령을 가장 잘 사용하는 방법을 설명합니다.
VSPackage 관리 Visual Studio에서 VSPackage를 로드하는 방법을 설명합니다.
Visual Studio 명령 테이블(.vsct) 파일 VSPackages에서 명령의 레이아웃 및 모양을 설명하는 데 사용되는 XML 기반 .vsct 파일에 대한 정보를 제공합니다.