Menu 요소
하나의 메뉴 항목을 정의합니다. 메뉴는 바로 가기 메뉴, 메뉴, MenuController, MenuControllerLatched, 도구 모음, ToolWindowToolbar 등 6개 종류가 있습니다.
구문
<Menu guid="guidMyCommandSet" id="MyCommand" priority="0x100" type="button">
<Parent>... </Parent>
<CommandFlag>... </CommandFlag>
<Strings>... </Strings>
</Menu>
특성 및 요소
다음 단원에서는 특성, 자식 요소 및 부모 요소에 대해 설명합니다.
특성
특성 | 설명 |
---|---|
guid | 필수입니다. GUID/ID 명령 식별자의 GUID입니다. |
id | 필수입니다. GUID/ID 명령 식별자의 ID입니다. |
priority | 선택 사항. 메뉴 그룹에서 메뉴의 상대 위치를 지정하는 숫자 값입니다. |
toolbarPriorityInBand | 선택 사항. 창이 고정될 때 밴드에서 도구 모음의 상대 위치를 지정하는 숫자 값입니다. |
type | (선택 사항) 요소의 종류를 지정하는 열거형 값입니다. 없는 경우 기본 형식은 Menu입니다. Context 사용자가 창을 마우스 오른쪽 단추로 클릭할 때 표시되는 바로 가기 메뉴입니다. 바로 가기 메뉴에는 다음과 같은 특징이 있습니다. - 메뉴를 바로 가기 메뉴로 표시할 때 부모 및 우선 순위 필드를 사용하지 않습니다. - 하위 메뉴로 사용할 수 있으며 바로 가기 메뉴로도 사용할 수 있습니다. 이 경우 그룹 ID와 우선 순위 필드가 모두 적용됩니다. - 일부 경우에는 사용할 수 없습니다. 바로 가기 메뉴는 다음 조건이 충족되는 경우에만 표시됩니다. - 바로 가기 메뉴를 호스트하는 창이 표시됩니다. - VSPackage의 마우스 처리기가 창에서 마우스 오른쪽 단추 클릭을 감지한 다음 명령을 처리하는 메서드를 호출합니다. - 바로 가기 메뉴는 ShowContextMenu 메서드(권장 방법) 또는 ShowContextMenu 메서드를 호출하여 표시됩니다. 메뉴 드롭다운 메뉴를 제공합니다. 드롭다운 메뉴에는 다음과 같은 특징이 있습니다. - 해당 정의에서 부모를 따릅니다. - 부모 그룹 또는 그룹에 대한 CommandPlacement가 있어야 합니다. - 다른 종류의 메뉴에서 하위 메뉴가 될 수 있습니다. - 부모 메뉴가 표시될 때마다 자동으로 표시됩니다. - 드롭다운 메뉴를 표시할 VSPackage 코드의 구현이 필요하지 않습니다. MenuController 일반적으로 도구 모음에서 사용되는 분할 단추 드롭다운 메뉴를 제공합니다. MenuController 메뉴에는 다음과 같은 특징이 있습니다. - 부모 또는 CommandPlacement를 통해 다른 메뉴에 포함되어야 합니다. - 해당 정의에서 부모를 따릅니다. - 모든 종류의 메뉴를 부모로 가질 수 있습니다. - 부모 메뉴가 표시될 때마다 자동으로 사용할 수 있습니다. - 메뉴를 표시하기 위해 프로그래밍 방식 지원이 필요하지 않습니다. 분할 단추 메뉴의 명령이 메뉴 단추에 표시됩니다. 표시되는 명령에는 다음 특성 중 하나가 있습니다. - 명령이 계속 표시되고 활성화되는 경우 사용된 마지막 명령입니다. - 첫 번째 표시된 명령입니다. MenuControllerLatched 명령을 래치됨으로 표시하여 명령을 기본 선택 항목으로 지정할 수 있는 분할 단추 드롭다운 메뉴를 제공합니다. 래치된 명령은 일반적으로 확인 표시를 통해 메뉴에서 선택된 것으로 표시되는 명령입니다. IOleCommandTarget 인터페이스의 QueryStatus 메서드 구현에서 OLECMDF_LATCHED 플래그가 설정된 경우 명령을 래치됨으로 표시할 수 있습니다. MenuControllerLatched 메뉴에는 다음과 같은 특징이 있습니다.- 부모 그룹 또는 CommandPlacement를 통해 다른 메뉴에 포함되어야 합니다. - 해당 정의에서 부모를 따릅니다. - 모든 종류의 메뉴를 부모로 가질 수 있습니다. - 부모 메뉴가 표시될 때마다 사용할 수 있습니다. - 메뉴를 표시하기 위해 프로그래밍 방식 지원이 필요하지 않습니다. 분할 단추 메뉴의 명령이 메뉴 단추에 표시됩니다. 표시되는 명령에는 다음 특성 중 하나가 있습니다. - 래치되는 첫 번째 표시된 명령입니다. - 첫 번째 표시된 명령입니다. 도구 모음 도구 모음을 제공합니다. 도구 모음에는 다음과 같은 특징이 있습니다. - 해당 정의에서 부모를 무시합니다. - 그룹의 하위 메뉴로 만들 수 없으며 CommandPlacement를 사용해도 마찬가지입니다. - 보기 메뉴에서 도구 모음을 클릭하여 항상 표시할 수 있습니다. - VisibilityItem을 사용하여 표시할 수 있습니다. - 도구 모음을 만드는 코드가 필요하지 않습니다. 도구 모음을 만드는 방법에 대한 예제는 도구 모음 추가를 참조하세요. ToolWindowToolbar 도구 모음이 개발 환경에 연결된 것과 마찬가지로 특정 도구 창에 연결된 도구 모음을 제공합니다. - 해당 정의에서 부모를 무시합니다. - 그룹의 하위 메뉴로 만들 수 없으며 CommandPlacement를 사용해도 마찬가지입니다. - 도구 모음을 호스트하는 도구 창이 표시되고 VSPackage가 명시적으로 도구 모음을 도구 창에 추가하는 경우에만 표시됩니다. 이 작업은 일반적으로 도구 창 프레임에서 도구 모음 호스트 속성(IVsToolWindowToolbarHost 인터페이스로 표시됨)을 가져온 다음 AddToolbar 메서드를 호출하여 도구 창을 만들 때 수행됩니다. |
조건 | 선택 사항. 조건부 특성을 참조하세요. |
자식 요소
요소 | 설명 |
---|---|
부모 | 선택 사항. 메뉴 항목의 부모 요소입니다. |
CommandFlag | 필수입니다. 명령 플래그 요소를 참조하세요. Menu의 유효한 CommandFlag 값은 다음과 같습니다. - AlwaysCreate - DefaultDocked - DefaultInvisible - 이 플래그는 도구 모음 표시에 영향을 주지 않습니다. - DontCache - DynamicVisibility - 이 플래그는 도구 모음 표시에 영향을 주지 않습니다. - IconAndText - NoCustomize - NotInTBList - NoToolbarClose - TextChanges - TextIsAnchorCommand |
문자열 | 필수입니다. 요소를 참조하세요. 자식 ButtonText 요소를 정의해야 합니다. |
주석 | 선택적인 주석입니다. |
부모 요소
요소 | 설명 |
---|---|
Menus 요소 | VSPackage가 구현하는 모든 메뉴를 정의합니다. |
예시
<Menu guid="cmdGuidWidgetCommands" id="menuIDEditWidget"
priority="0x0002" type="Menu">
<Parent guid="cmdSetGuidWidgetCommands" id="groupIDFileEdit"/>
<CommandFlag>AlwaysCreate</CommandFlag>
<Strings>
<ButtonText>Edit Widget</ButtonText>
</Strings>
</Menu>