다음을 통해 공유


연습: 메뉴에 하위 메뉴 추가

이 연습에서는 데모를 기반으로 연습: 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를 만들려면

메뉴에 하위 메뉴 추가

메뉴에 하위 메뉴를 추가 하려면

  1. 솔루션 탐색기에서 Toplevelmenu.vsct를 엽니다.

  2. 에 <Symbols> 섹션에서 추가 <IDSymbol> 하위 메뉴, 하위 메뉴 그룹 및에 있는 모든 명령에 대 한 요소는 <GuidSymbol> "guidTopLevelMenuCmdSet" 라는 이름의 노드가 이 같은 노드에 포함 되어 있는 <IDSymbol> 요소는 최상위 수준 메뉴에 대 한.

    <IDSymbol name="SubMenu" value="0x1100"/>
    <IDSymbol name="SubMenuGroup" value="0x1150"/>
    <IDSymbol name="cmdidTestSubCommand" value="0x0105"/>
    
  3. 새로 만든된 된 하위 메뉴에 추가 <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#) 메뉴 추가, 및 최상위 메뉴의 자식입니다.

  4. 2 단계에서 정의한 메뉴 그룹 추가 <Groups> 절 하 고 하위 메뉴의 하위.

     <Group guid="guidTopLevelMenuCmdSet" id="SubMenuGroup"
    priority="0x0000">
       <Parent guid="guidTopLevelMenuCmdSet" id="SubMenu"/>
     </Group>
    
  5. 새 추가 <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) 요소를 나타내는 데 사용 되는 일반 구문입니다.

  6. 솔루션 탐색기Toplevelmenu.vsct를 마우스 오른쪽 단추로 클릭 하 고 다음을 클릭 를 다시.

    이렇게 변경 내용 사용 하 여.vsct 파일을 작성 합니다. 빌드 시 발생할 수 있는 오류를 수정 하십시오. (가장 일반적인 오류 잘못 된 대/소문자 GUID 레이블이나 명령 ID;에 대 한 사용 됩니다. 명령 Id 및 GUID 레이블 항상 대/소문자 구분 됩니다.)

  7. 인스턴스를 열고 F5 키를 눌러 해당 Visual Studio 실험 환경에서 디버그 모드입니다.

  8. 클릭 TestMenu 라는 새 하위 메뉴를 보려면 하위 메뉴. 클릭 하위 메뉴 하위 메뉴를 열고 새 명령을 볼 수 테스트 하위 명령. 해당 클릭 하면 확인할 수 테스트 하위 명령 는 실행 되지 않습니다.

    참고

    실험적인 닫아야 합니다 Visual Studio 다음 섹션을 계속 하기 전에.

명령 추가

관리 되는 코드에서 명령에 대 한 지원을 추가 하려면

  1. PkgCmdID.cs 또는 Pkgcmdid.vb에서 코드 편집기를 엽니다.

  2. 다음 명령은 ID의 기존 명령 ID 뒤에 추가 있는 PkgCmdIDList 클래스 정의입니다.

    public const int cmdidTestSubCmd = 0x105;
    
  3. TopLevelMenuPackage.cs 또는 Toplevelmenupackage.vb에서 코드 편집기를 엽니다.

  4. 찾기 라는 레이블이 있는 숨겨진된 영역 Package Members 왼쪽된 여백에 있는 더하기 기호를 클릭 하 여 확장 합니다.

  5. 찾기는 Initialize 메서드를 호출 하기만 하면 다음 줄을 추가 하는 AddCommand 메서드. 기호 SubItemCallback 때까지 6 단계 후 정의 되지 것입니다.

                CommandID subCommandID = new CommandID(
    GuidList.guidTopLevelMenuCmdSet,
    (int)PkgCmdIDList.cmdidTestSubCmd);
                MenuCommand subItem = new MenuCommand(
                    new EventHandler(SubItemCallback), subCommandID);
                mcs.AddCommand(subItem);
    
  6. 클래스의 끝 바로 뒤의 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);
    }
    
  7. 빌드 메뉴에서 솔루션 빌드를 클릭하여 솔루션을 빌드합니다.

  8. 인스턴스는 실험을 열고 F5 키를 눌러 Visual Studio.

  9. 에 있는 TestMenu 메뉴를 클릭 하위 메뉴 하 고 다음을 클릭 테스트 하위 명령. 메시지 상자가 표시 되 고 안에 "Company.TopLevelMenu.TopLevelMenuPackage.SubItemCallback()" 텍스트를 표시 합니다.

참고 항목

작업

연습: Visual Studio 메뉴 모음 (C#) 메뉴 추가

기타 리소스

명령, 메뉴 및 도구 모음에 대 한 연습

명령, 메뉴 및 도구 모음