더북(TheBook)

5.3.3 메뉴 이벤트 처리기 추가

이제 [중복 창 띄우기] 메뉴를 선택하였을 때 실행될 함수를 추가해보자. 메뉴 항목 선택에 대한 이벤트 처리기를 추가하는 방법은 두 가지이다. 하나는 메뉴 편집 화면에서 [이벤트 처리기 추가...] 메뉴를 사용하는 방법과 다른 하나는 클래스 마법사를 사용하는 방법이다. 여러 개의 메뉴 항목에 대하여 이벤트 처리기를 한꺼번에 등록할 때에는 클래스 마법사를 이용하는 것이 편리하지만, 메뉴 항목 하나에 대한 이벤트 처리기 추가는 메뉴 편집 화면에서 컨텍스트 메뉴의 [이벤트 처리기 추가...]를 이용하는 것이 더 직관적이다.

그림 5-36과 같이 메뉴 편집 창에서 [중복 창 띄우기] 메뉴 항목 위에서 마우스 오른쪽 버튼을 클릭해보자. 그러면 컨텍스트 메뉴가 나타나고, 이 중에서 [이벤트 처리기 추가...] 메뉴를 선택하면 그림 5-37과 같은 이벤트 처리기 추가 마법사가 나타난다.

그림 5-36 [중복 창 띄우기] 메뉴에 대한 이벤트 처리기 추가
그림 5-37 [중복 창 띄우기] 메뉴에 대한 이벤트 처리기 마법사

그림 5-37에서 ‘명령 이름’ 항목은 ID_WINDOW_DUPLICATE로 고정되어 있는데, 이는 [중복 창 띄우기] 메뉴에서 이벤트 처리기 추가 메뉴를 선택했기 때문이다. 이벤트 처리기 마법사에서 메시지 형식과 메시지를 처리할 클래스를 고를 수가 있다. COMMAND는 해당 메뉴 항목이 실제로 선택되었을 때 발생하는 메시지 형식이다. UPDATE_COMMAND_UI 메시지 형식은 해당 메뉴 항목이 화면에 나타나기 바로 직전에 발생하는 메시지로써 주로 해당 메뉴 항목의 보여지는 방식을 지정하기 위해 사용된다. 다른 Windows 응용 프로그램들을 보면 메뉴 항목에 체크 표시가 나타나거나 활성화/비활성화된 메뉴 항목을 볼 수 있는데, 이를 위해서는 UPDATE_COMMAND_UI 메시지를 처리해야 한다. 클래스 목록에서는 메뉴 이벤트 메시지를 처리할 클래스를 선택할 수 있다. 여기서 선택된 클래스에 메뉴 이벤트 처리를 위한 멤버 함수가 추가된다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.