2014-11-20 3 views
0

ArcMap에서 VS2010 및 C#을 사용하여 추가 기능을 사용하고 있습니다. ArcObjects ICommandBar 및 ICommandItem 클래스와 관련하여 질문이 있습니다. 나는 이것들을 살펴 보았고 버튼을 클릭 할 때 지정된 명령 항목을 선택하거나 활성화 할 코드를 생성 할 수있었습니다. 그래서 나는 커맨드 바 (command bar)에 관한 일을 알고 있습니다. 내 질문은 명령 모음에서 어떤 명령 항목이 활성화되어 있는지 확인하는 방법입니다. 나는 그렇게하는 데 도움이되는 방법을 보지 못했습니다. 이것에 대한 도움은 크게 감사 할 것입니다.명령 모음에서 활성화되는 명령 항목

UID thisID = new UID(); 
thisID.Value = "esriArcMapUI.SelectTool"; 
IDocument ThisDoc = ArcMap.Application.Document; 
ICommandBars CommandBars = ThisDoc.CommandBars as ICommandBars; 
CommandBars.Find(thisID); 
ICommandItem myItem = CommandBars.Find(thisID) as ICommandItem; 

if (myItem.Execute() == true) 
{ 
messagebox.show("My select element tool is selected"); 
} 
+1

현재 사용중인 코드를 게시하여 올바르게 작동하는지 또는 올바르게 작동하지 않는지 확인하는 데 도움이 될 수 있습니까? 또한이 링크를 보았습니다. http://help.arcgis.com/en/sdk/10.0/arcobjects_net/componenthelp/index.html#//002300000068000000 – MethodMan

+0

아직 작성된이 특정 문제에 대한 구체적인 코드가 없습니다. 나는 다른 사람들의 도움을 얻기 위해 더 나은 그림을 그려야한다면 내가 원하는 것을 의사 코드로 만들 수있다. 나는이 링크를 보았다. 식별자로 지정된 항목을 검색합니다. 나는 사용자가 그것을 클릭 할 때까지 어떤 식별자가 지정되는지를 반드시 알 필요가 없다. 나는 본질적으로 내가하려는 일이다. 클릭 한 명령 항목을 얻으십시오 – user1898629

+0

당신은 아마도 당신이 pseduocode를 실제로 시도하는 어떤 실제 코드를 생각해 낼 수 있습니까?이 상황에서 말하면서 저에게 도움이되지 않습니다 .. 죄송합니다. – MethodMan

답변

0

@DJKRAZE의 도움으로 마침내 내 문제에 대한 해결책을 찾았습니다. 나는 이것을 조금 더 어렵게 만들었고, 너무 열심히 생각했다. 아래 코드는 ArcMap에서 현재 선택된 도구를 반환하는 데 사용할 수 있습니다 (제 경우에는 진단 윈도우에서 현재 선택된 도구의 툴팁을 반환합니다).

public static ICommandItem CurrentTool() 
    { 
     IApplication _myApp = ArcMap.Application; 
     string getToolTip = _myApp.CurrentTool.Tooltip; 
     System.Diagnostics.Debug.Write("Current Tool Tip is: " + getToolTip); 
     return _myApp.CurrentTool; 
    } 

버튼 클릭시이 기능을 호출합니다. 따라서 ArcMap을 실행하면 툴바에서 도구를 선택합니다. 진단 창을 들여다보고 선택한 도구의 도구 설명을 볼 수 있습니다. 내 자신의 이익을 위해 몇 가지 사항을 조정해야하지만 이것은 내가 찾고있는 답이 될 것입니다. 희망이 다른 사람에게 도움이 될 수 있습니다.