선택 컨텍스트 개체

Visual Studio IDE(통합 개발 환경)는 전역 선택 컨텍스트 개체를 사용하여 IDE에 표시할 항목을 결정합니다. IDE의 각 창에는 전역 선택 컨텍스트에 푸시된 고유한 선택 컨텍스트 개체가 있을 수 있습니다. IDE는 해당 창에 포커스가 있을 때 창의 값으로 전역 선택 컨텍스트를 업데이트합니다. 자세한 내용은 사용자에 대한 피드백을 참조하세요.

IDE의 각 창 프레임 또는 사이트에는 STrackSelection이라는 서비스가 있습니다. 창 프레임에 있는 VSPackage에서 만든 개체는 QueryService 메서드를 호출하여 ITrackSelection 인터페이스에 대한 포인터를 가져와야 합니다.

프레임 창은 시작 시 해당 선택 컨텍스트 정보의 일부가 전역 선택 컨텍스트로 전파되지 않도록 할 수 있습니다. 이 기능은 빈 선택 영역으로 시작해야 할 수 있는 도구 창에 유용합니다.

전역 선택 컨텍스트를 수정하면 VSPackage가 모니터링할 수 있는 이벤트가 트리거됩니다. VSPackages는 IVsTrackSelectionExIVsMonitorSelection 인터페이스를 구현하여 다음 작업을 수행할 수 있습니다.

  • 계층 구조에서 현재 활성 파일을 업데이트합니다.

  • 특정 형식의 요소에 대한 변경 내용을 모니터링합니다. 예를 들어 VSPackage가 특수 속성 창을 사용하는 경우 활성 속성 창의 변경 내용을 모니터링하고 필요한 경우 다시 시작할 수 있습니다.

    다음 시퀀스는 일반적인 선택 추적 과정을 보여 줍니다.

  1. IDE는 새로 열린 창에서 선택 컨텍스트를 검색하고 전역 선택 컨텍스트에 배치합니다. 선택 컨텍스트가 HIERARCHY_DONTPROPAGATE 또는 SELCONTAINER_DONTPROPAGATE를 사용하는 경우 해당 정보는 전역 컨텍스트로 전파되지 않습니다. 자세한 내용은 사용자에 대한 피드백을 참조하세요.

  2. 알림 이벤트는 이벤트를 요청한 모든 VSPackage에 브로드캐스트됩니다.

  3. VSPackage는 계층 구조 업데이트, 도구 다시 활성화 또는 기타 유사한 작업 등의 작업을 수행하여 수신하는 이벤트에 작동합니다.

참고 항목