none
마우스 우클릭에 기능을 추가하는 방법? RRS feed

  • 질문

  • 제가 사용하는 addin 이 있습니다. Extension은 아니구요. 

    addin에 총 10여개의 기능이 있는데 그 중에 하나만 마우스 오른쪽 버튼을 클릭했을때 나오는 메뉴에 추가 되어 있습니다.

    여기에 여러가지를 더 추가하고 싶은데 어떻게 해야 할까요?

    2012년 1월 12일 목요일 오전 9:01

모든 응답

  • 안녕하십니까? Hyun Jin Moon

    Microsoft MSDN Forum 사이트를 방문해 주셔서 감사합니다.

    문의 하신 마우스 우클릭에 기능을 추가하는 방법?”에 대한 답변을 드리겠습니다.

     

    현재 MSDN에서 기능 추가 방법에 대해서 제공해드리고 있습니다.

     

     Visual Studio 환경 확장

    ·         추가 기능 마법사 만들기

    ·         확장성 프로젝트

    ·         추가 기능 프로젝트의 구성 요소

    ·         방법: 추가 기능 만들기

    ·         방법: 추가 기능 관리자를 사용하여 추가 기능 제어

    ·         방법: 명령줄을 사용하여 추가 기능 실행

    ·         도구 모음 메뉴에 추가 기능 표시

    ·         연습: 추가 기능 프로젝트 디버깅

    ·         추가 기능 등록

    ·         추가 기능 보안

    ·         추가 기능 명령을 키에 바인딩

    ·         방법: 추가 기능 명령을 메뉴에 복원

    ·         연습: 마법사 만들기

    ·         마법사를 시작하도록 .Vsz 파일 구성

    ·         .Vsdir 파일을 사용하여 항목 추가 프로젝트 대화 상자에 마법사 추가

    ·         마법사를 시작하는 사용되는 컨텍스트 매개 변수

    ·         방법: 추가 기능 비활성화 제거

     

    제가 문제에 대해 더 알아야 할 것이 있다면 응답 주시면 감사하겠습니다.

    제시해 드린 답변이 도움이 되었기를 바랍니다.

    2012년 1월 13일 금요일 오전 8:08
    중재자
  • 안녕하세요. Visual Studio ALM MVP 엄준일 입니다.

    우선 마우스 오른쪽 버튼을 눌렀을 때 나오는 메뉴를 추가하고 싶은것이 맞죠?
    그렇다면 좀 더 자세한 질문을 해주시면 더 좋았을것 같아요.

    예를 들어, 마우스 오른쪽 버튼을 클릭할 수 있는 영역은 상당히 많습니다.
    기본적인 1. 코드에디터, 2.디자이너, 3.솔루션탐색기, 4.상단메뉴 등입니다.

    만약 단순히 메뉴를 추가하고 싶으시다면 Jina Lee 님의 답변처럼 도구 모음  메뉴에 추가 기능 표시 를 참고하시면 됩니다.

     

    또는, 마우스 오른쪽 버튼에 특수한 기능을 넣고 싶다면,
    제가 오픈 소스로 공개한 VSGesture 를 응용해 보셔도 좋습니다.

    http://vsgesture.codeplex.com/

     

    감사합니다. 


    엄준일 (Junil, Um) Microsoft Visual Studio ALM MVP (Team System) Personal Blog : http://blog.powerumc.kr Visual Studio Korea Team Blog : http://vsts2010.net
    2012년 1월 16일 월요일 오전 3:18
  • 안녕하세요. 문현진 입니다.

     

    제가 원하는 것은 코드에디터 내에서 마우스 오른쪽 버튼을 클릭 했을때 입니다. 

     

    예를 들면, 마우스 오른쪽 버튼을 눌러서 기존의 기능을 수행 하고 싶습니다.

    저는  http://www.atomineerutils.com/products.php 라는 코드 작성 도우미를 쓰고 있습니다.

     

    여기에 리팩토링 기능들이 있는데 매번 코드에디터에서 함수를 선택하고 메뉴에서 접근자 생성 등을 눌러야 합니다.

    그 기능을 마우스 오른쪽 버튼을 눌렀을때 나오는 메뉴에 추가하고 싶다는 뜻입니다.

     

    절대로! 제가 만드는 소프트웨어에 추가하고 싶다는 뜻이 아닙니다. 제가 사용하는 Visual Studio 에 기능을 추가 하고 싶다는 뜻입니다.

    답변에 감사드리고 좋은하루되세요.

    2012년 1월 17일 화요일 오전 7:20
  • 제가 질문한 내용과 답변이 상이합니다 :0
    2012년 1월 17일 화요일 오전 7:21
  • 안녕하세요. Visual Studio ALM MVP 엄준일 입니다.

    말씀하시는 AtomineerUtil 이라는 주석을 달아주는 도구는 이미 원하시는 기능이 있습니다.
    코드 에디터에서 마우스 오른쪽 버튼을 누르시면 Add Doc Comment 메뉴가 있습니다.

     

    만약, 여러 가지 다른 메뉴들을 텍스트 에디터 컨텍스트 메뉴에 추가하고 싶은 경우 이 기능을 Visual Studio 에서
    기본적으로는 제공하지 않습니다.

    여기에 대해 확장하는 방법은 대략 다음과 같이 하시면 됩니다.

     

    우선 코드에디터에서 마우스 우측 버튼을 클릭한 메뉴에 항목을 넣기 위해서는 다음과 같이 진행하시면 됩니다.

    물론 항목을 넣기 위해 프로그래밍 요소가 필요하므로 이점 참고하시기 바랍니다.

     

    Visual Studio SDK 를 설치하시면 Package 응용 프로그램을 만들 수 있습니다.

    패키지 프로젝트에서 .vsct 파일을 여시면 Package Context 동작을 정의할 수 있습니다.

     

    가령 CodeEditor Context 메뉴에 메뉴 항목을 넣으려면 다음과 같이 정의하면 됩니다.

     

    <Groups>
    
      <Group guid="guidCustomMenuCmd" id="MyMenuGroup" priority="0x0600">
    
        <Parent guid="guidSHLMainMenu" id="IDG_VS_CODEWIN_TEXTEDIT"/>
    
      </Group>
    
    </Groups>
    
        
    
    <Buttons>
    
      <Button guid="guidCustomMenuCmd" id="cmdCustomMenuItem" priority="0x0100"
    
        type="Button">
    
        <Parent guid="guidCustomMenuCmd" id="MyMenuGroup" />
    
        <Icon guid="guidImages" id="bmpPic1" />
    
        <Strings>
    
          <CommandName>cmdCustomMenuItem</CommandName>
    
          <ButtonText>Custom CodeEditorContextMenu</ButtonText>
    
        </Strings>
    
      </Button>
    
    </Buttons>
    


     

    그리고 Package 를 상속받는 클래스에서 Initialize 메서드에 아래와 같이 명령 코드의 이벤트를 등록하시면 됩니다.

     CommandID menuCommandID = new CommandID(GuidList.guidCustomMenuCmd
    
          (int)PkgCmdIDList.cmdCustomMenuItem);
    
        MenuCommand menuItem = new MenuCommand(MenuItemCallback, menuCommandID);
    
        mcs.AddCommand(menuItem);
    


    감사합니다. 

     


    엄준일 (Junil, Um) Microsoft Visual Studio ALM MVP (Team System) Personal Blog : http://blog.powerumc.kr Visual Studio Korea Team Blog : http://vsts2010.net
    2012년 1월 17일 화요일 오전 9:13