방법: 매크로에서 이벤트 처리
IDE(통합 개발 환경)에는 모든 프로젝트에 적용되는 이벤트와 특정 프로젝트 형식에만 적용되는 이벤트라는 두 가지 형식의 이벤트가 있습니다. 모든 프로젝트 형식에 적용되는 이벤트의 예로는 새 파일 추가, 메뉴 옵션 선택, 창 닫기 등을 들 수 있습니다. 특정 프로젝트 형식에만 적용되는 이벤트의 예로는 프로젝트에 대한 참조 또는 웹 참조 추가를 들 수 있습니다.
이 작업을 하려면 매크로 통합 개발 환경에 액세스하여 매크로 프로젝트를 만드는 방법을 알고 있어야 합니다. 자세한 내용은 매크로를 사용하여 반복 작업 자동화를 참조하십시오.
이 예제에서는 모든 Visual Studio 프로젝트에 적용되는 창 이벤트에 응답하는 방법을 보여 줍니다. 모든 언어에 적용되는 이벤트에 대한 자세한 내용은 자동화 이벤트에 응답을 참조하십시오.
참고
표시되는 대화 상자와 메뉴 명령은 활성 설정이나 버전에 따라 도움말에서 설명하는 것과 다를 수 있습니다. 이러한 절차는 일반 개발 설정을 사용하여 개발되었습니다. 설정을 변경하려면 도구 메뉴에서 설정 가져오기 및 내보내기를 선택합니다. 자세한 내용은 설정에 대한 작업을 참조하십시오.
언어 중립 이벤트를 캡처하려면
MyMacros에서 새 매크로 모듈을 만들고 이름을 CaptureEvents로 지정합니다.
새 매크로를 만들면 EnvironmentEvents라는 모듈이 기본적으로 추가됩니다. 이 모듈은 자동화 이벤트에 응답에 나와 있는 표에서 설명하는 여러 가지 이벤트 개체를 정의합니다. EnvironmentEvents 모듈에서 모듈 수준 WindowEvents 변수는 이미 다음과 같이 선언되어 있습니다.
Public WithEvents windowEvents As EnvDTE.WindowEvents
EnvironmentEvents 모듈에서 매크로 IDE 편집기의 클래스 이름 및 메서드 이름 드롭다운 상자를 사용하여 변수에 대한 WindowClosing 이벤트 처리 루틴을 만들거나 아래 코드를 잘라내어 붙여넣습니다.
Public Sub windowEvents_WindowClosing( _ ByVal Window As EnvDTE.Window) Handles windowEvents.WindowClosing MsgBox("You are closing the window.") End Sub
개발 환경으로 돌아가 활성 창을 닫습니다.
그러면 메시지 상자가 표시됩니다. 이 메시지는 활성 창을 닫을 때마다 표시됩니다. 활성 창을 닫을 때마다 메시지가 나타나지 않도록 하려면 이벤트 처리기를 삭제합니다.
프로젝트에 참조 추가
이 예제에서는 프로젝트에 대한 참조 추가에 응답하는 방법을 보여 줍니다. 언어 종속 이벤트는 Events 속성에 포함됩니다. 이 예제에서는 ReferencesEvents에 바인딩하는 프로젝트별 응용 프로그램을 제공합니다. EnvironmentEvents 모듈에서 처리기를 정의하여 전역 수준 이벤트 처리기를 제공할 수도 있습니다. 자세한 내용은 방법: 매크로에서 특정 프로젝트 형식에 대한 이벤트 처리기 만들기를 참조하십시오. 이 예제를 실행하려면 Visual Studio IDE에 Visual Basic 또는 Visual C# 프로젝트가 열려 있어야 합니다.
Visual Basic 또는 Visual C# 이벤트를 캡처하려면
새로운 매크로 모듈 CaptureRefEvents를 만듭니다.
매크로 IDE(통합 개발 환경)에서 프로젝트 메뉴의 **참조 추가...**를 선택하여 VSLangProj에 대한 참조를 추가합니다. 참조 추가 대화 상자에서 VSLangProj를 선택하고 확인을 클릭한 다음 추가를 클릭합니다.
EnvironmentEvents 모듈에서 축소되어 있는 자동 생성된 코드 - 수정하지 마십시오. 섹션을 확장하고 모듈 수준의 ReferencesEvents 변수를 추가합니다.
Dim WithEvents refEvents As VSLangProj.ReferencesEvents
편집기의 클래스 이름 및 메서드 이름 드롭다운 상자를 사용하여 변수에 대한 이벤트 처리 루틴을 만듭니다.
Public Sub refEvents_ReferenceAdded(ByVal pReference As _ VSLangProj.Reference) Handles refEvents.ReferenceAdded MsgBox(pReference.Name & " was added to the project.") End Sub
매크로 탐색기에서 마우스 오른쪽 단추로 CaptureRefEvents 모듈을 클릭합니다. 드롭다운 메뉴에서 새 매크로를 선택합니다. refEvents 변수를 초기화하기 위한 아래 코드를 잘라내어 붙여넣습니다.
Public Sub ConnectRefEvents() Dim proj As VSLangProj.VSProject proj = CType(DTE.Solution.Projects.Item(1).Object, _ VSLangProj.VSProject) refEvents = proj.Events.ReferencesEvents End Sub
ConnectRefEvents 매크로를 저장합니다.
Visual Studio IDE에서 Visual Basic또는 Visual C# 프로젝트를 엽니다.
ConnectRefEvents 매크로를 실행합니다.
Visual Studio IDE에서 프로젝트에 대한 참조를 추가합니다.
"<Reference name>이(가) 프로젝트에 추가되었습니다."라는 텍스트가 메시지 상자에 나타납니다.