다음을 통해 공유


명령 가용성

Visual Studio 컨텍스트는 사용 가능한 명령을 결정합니다. 컨텍스트는 현재 프로젝트, 현재 편집기, 로드된 VSPackage 및 IDE(통합 개발 환경)의 다른 측면에 따라 변경될 수 있습니다.

명령 컨텍스트

다음 명령 컨텍스트가 가장 일반적입니다.

  • IDE: IDE에서 제공하는 명령은 항상 사용할 수 있습니다.

  • VSPackage: VSPackage는 명령을 표시하거나 숨길 시기를 정의할 수 있습니다.

  • 프로젝트: 프로젝트 명령은 현재 선택한 프로젝트에 대해서만 나타납니다.

  • 편집기: 한 번에 하나의 편집기만 활성화할 수 있습니다. 활성 편집기에서 명령을 사용할 수 있습니다. 편집기는 언어 서비스와 긴밀하게 작동합니다. 언어 서비스는 연결된 편집기의 컨텍스트에서 해당 명령을 처리해야 합니다.

  • 파일 형식: 편집기에서 둘 이상의 파일 형식을 로드할 수 있습니다. 사용 가능한 명령은 파일 형식에 따라 변경됩니다.

  • 활성 창: 마지막 활성 문서 창은 키 바인딩에 대한 UI(사용자 인터페이스) 컨텍스트를 설정합니다. 그러나 내부 웹 브라우저와 유사한 키 바인딩 테이블이 있는 도구 창은 UI 컨텍스트를 설정할 수도 있습니다. HTML 편집기와 같은 다중 탭 문서 창의 경우 모든 탭에는 여러 명령 컨텍스트 GUID가 있습니다. 도구 창이 등록되면 항상 보기 메뉴에서 사용할 수 있습니다.

  • UI 컨텍스트: UI 컨텍스트는 VSConstants.UICONTEXT 클래스의 값으로 식별됩니다(예: 솔루션이 빌드되는 경우 SolutionBuilding_guid 또는 디버거가 활성 상태인 경우 Debugging_guid). 여러 UI 컨텍스트를 동시에 활성화할 수 있습니다.

사용자 지정 컨텍스트 GUID 정의

적절한 명령 컨텍스트 GUID가 아직 정의되지 않은 경우 VSPackage에서 하나를 정의한 다음, 명령의 표시 여부를 제어하는 데 필요한 경우 활성 또는 비활성으로 프로그래밍할 수 있습니다.

  1. GetCmdUIContextCookie 메서드를 호출하여 컨텍스트 GUID를 등록합니다.

  2. IsCmdUIContextActive 메서드를 호출하여 컨텍스트 GUID의 상태를 가져옵니다.

  3. SetCmdUIContext 메서드를 호출하여 컨텍스트 GUID를 켜고 끕니다.

주의

다른 VSPackage가 종속될 수 있으므로 VSPackage가 기존 컨텍스트 GUID에 영향을 주지 않아야 합니다.