연습: 메뉴에 하위 메뉴 추가
이 연습에서는 데모를 기반으로 연습: Visual Studio 메뉴 모음 (C#) 메뉴 추가 에서 하위 메뉴를 추가 하는 방법을 보여 주는 있는 TestMenu 메뉴.
하위 메뉴가 다른 메뉴에 나타나는 보조 메뉴입니다. 하위 메뉴 이름 다음에 오는 화살표로 식별 됩니다. 이름을 클릭 하면 표시 되는 명령 및 하위 메뉴를 발생 합니다.
이 연습에서는 Visual Studio 메뉴 모음의 메뉴에 하위 메뉴를 만들고 하위 메뉴에 새 명령을 추가 합니다. 이 연습에서는 새 명령을 구현합니다.
사전 요구 사항
이 연습을 완료 하려면 설치 해야 해당 Visual Studio 2010 SDK.
참고
Visual Studio SDK에 대 한 자세한 내용은 참조 하십시오. Visual Studio 개요를 확장합니다..Visual Studio SDK를 다운로드 하는 방법를 참조 하십시오. Visual Studio 확장성 개발자 센터 MSDN 웹 사이트에서.
Visual Studio 패키지 프로젝트 템플릿에 대해 위치
Visual Studio 패키지 프로젝트 서식 파일에에서 사용할 수 있는 새 프로젝트 대화 상자:
아래에서 Visual Basic 확장성. 프로젝트의 기본 언어는 Visual Basic입니다.
아래에서 C# 확장성. 프로젝트의 기본 언어는 C#입니다.
아래에서 기타 프로젝트 형식 확장. 프로젝트의 기본 언어는 c + +입니다.
있는 VSPackage 만들기
TopLevelMenu Vspackage를 만들려면
단계에 연습: Visual Studio 메뉴 모음 (C#) 메뉴 추가 입니다를 기능은이 연습에서 추가 메뉴를 만들 수 있습니다.
이 연습 단계에서는 이름이 있는 VSPackage 가정 TopLevelMenu, 이름에 사용 된 연습: Visual Studio 메뉴 모음 (C#) 메뉴 추가.
메뉴에 하위 메뉴 추가
메뉴에 하위 메뉴를 추가 하려면
솔루션 탐색기에서 Toplevelmenu.vsct를 엽니다.
에 <Symbols> 섹션에서 추가 <IDSymbol> 하위 메뉴, 하위 메뉴 그룹 및에 있는 모든 명령에 대 한 요소는 <GuidSymbol> "guidTopLevelMenuCmdSet" 라는 이름의 노드가 이 같은 노드에 포함 되어 있는 <IDSymbol> 요소는 최상위 수준 메뉴에 대 한.
<IDSymbol name="SubMenu" value="0x1100"/> <IDSymbol name="SubMenuGroup" value="0x1150"/> <IDSymbol name="cmdidTestSubCommand" value="0x0105"/>
새로 만든된 된 하위 메뉴에 추가 <Menus> 섹션입니다.
<Menu guid="guidTopLevelMenuCmdSet" id="SubMenu" priority="0x0100" type="Menu"> <Parent guid="guidTopLevelMenuCmdSet" id="MyMenuGroup"/> <Strings> <ButtonText>Sub Menu</ButtonText> <CommandName>Sub Menu</CommandName> </Strings> </Menu>
생성 된 메뉴 그룹 GUID/i D 쌍의 부모 지정 연습: Visual Studio 메뉴 모음 (C#) 메뉴 추가, 및 최상위 메뉴의 자식입니다.
2 단계에서 정의한 메뉴 그룹 추가 <Groups> 절 하 고 하위 메뉴의 하위.
<Group guid="guidTopLevelMenuCmdSet" id="SubMenuGroup" priority="0x0000"> <Parent guid="guidTopLevelMenuCmdSet" id="SubMenu"/> </Group>
새 추가 <Button> 요소에는 <Buttons> 섹션의 하위 메뉴 항목으로 2 단계에서 만든 명령을 정의 합니다.
<Button guid="guidTopLevelMenuCmdSet" id="cmdidTestSubCommand" priority="0x0000" type="Button"> <Parent guid="guidTopLevelMenuCmdSet" id="SubMenuGroup" /> <Icon guid="guidImages" id="bmpPic2" /> <Strings> <CommandName>cmdidTestSubCommand</CommandName> <ButtonText>Test Sub Command</ButtonText> </Strings> </Button>
참고
.Vsct 파일에는 <Button> 요소는 단추, 메뉴 항목 및 명령을 실행 하려면 사용자가 클릭할 수 있는 모든 다른 사용자 인터페이스 (UI) 요소를 나타내는 데 사용 되는 일반 구문입니다.
솔루션 탐색기Toplevelmenu.vsct를 마우스 오른쪽 단추로 클릭 하 고 다음을 클릭 를 다시.
이렇게 변경 내용 사용 하 여.vsct 파일을 작성 합니다. 빌드 시 발생할 수 있는 오류를 수정 하십시오. (가장 일반적인 오류 잘못 된 대/소문자 GUID 레이블이나 명령 ID;에 대 한 사용 됩니다. 명령 Id 및 GUID 레이블 항상 대/소문자 구분 됩니다.)
인스턴스를 열고 F5 키를 눌러 해당 Visual Studio 실험 환경에서 디버그 모드입니다.
클릭 TestMenu 라는 새 하위 메뉴를 보려면 하위 메뉴. 클릭 하위 메뉴 하위 메뉴를 열고 새 명령을 볼 수 테스트 하위 명령. 해당 클릭 하면 확인할 수 테스트 하위 명령 는 실행 되지 않습니다.
참고
실험적인 닫아야 합니다 Visual Studio 다음 섹션을 계속 하기 전에.
명령 추가
관리 되는 코드에서 명령에 대 한 지원을 추가 하려면
PkgCmdID.cs 또는 Pkgcmdid.vb에서 코드 편집기를 엽니다.
다음 명령은 ID의 기존 명령 ID 뒤에 추가 있는 PkgCmdIDList 클래스 정의입니다.
public const int cmdidTestSubCmd = 0x105;
TopLevelMenuPackage.cs 또는 Toplevelmenupackage.vb에서 코드 편집기를 엽니다.
찾기 라는 레이블이 있는 숨겨진된 영역 Package Members 왼쪽된 여백에 있는 더하기 기호를 클릭 하 여 확장 합니다.
찾기는 Initialize 메서드를 호출 하기만 하면 다음 줄을 추가 하는 AddCommand 메서드. 기호 SubItemCallback 때까지 6 단계 후 정의 되지 것입니다.
CommandID subCommandID = new CommandID( GuidList.guidTopLevelMenuCmdSet, (int)PkgCmdIDList.cmdidTestSubCmd); MenuCommand subItem = new MenuCommand( new EventHandler(SubItemCallback), subCommandID); mcs.AddCommand(subItem);
클래스의 끝 바로 뒤의 MenuItemCallback 메서드를 다음 메서드를 추가 합니다. 이 하위 메뉴에 새 명령을 클릭할 때 호출 되는 메서드를입니다.
private void SubItemCallback(object sender, EventArgs e) { IVsUIShell uiShell = (IVsUIShell)GetService( typeof(SVsUIShell)); Guid clsid = Guid.Empty; int result; uiShell.ShowMessageBox( 0, ref clsid, "My Top Level Menu Package", string.Format(CultureInfo.CurrentCulture, "Inside {0}.SubItemCallback()", this.ToString()), string.Empty, 0, OLEMSGBUTTON.OLEMSGBUTTON_OK, OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST, OLEMSGICON.OLEMSGICON_INFO, 0, out result); }
빌드 메뉴에서 솔루션 빌드를 클릭하여 솔루션을 빌드합니다.
인스턴스는 실험을 열고 F5 키를 눌러 Visual Studio.
에 있는 TestMenu 메뉴를 클릭 하위 메뉴 하 고 다음을 클릭 테스트 하위 명령. 메시지 상자가 표시 되 고 안에 "Company.TopLevelMenu.TopLevelMenuPackage.SubItemCallback()" 텍스트를 표시 합니다.
참고 항목
작업
연습: Visual Studio 메뉴 모음 (C#) 메뉴 추가