메시지 범주
세 가지 기본 범주에 대한 처리기를 작성하는 메시지의 종류는 다음과 같습니다.
Windows 메시지
여기에는 주로 WM_COMMAND 제외하고 WM_ 접두사로 시작하는 메시지가 포함됩니다. Windows 메시지는 창 및 보기에서 처리됩니다. 이러한 메시지에는 메시지를 처리하는 방법을 결정하는 데 사용되는 매개 변수가 있는 경우가 많습니다.
컨트롤 알림
여기에는 컨트롤 및 기타 자식 창에서 부모 창으로의 WM_COMMAND 알림 메시지가 포함됩니다. 예를 들어 편집 컨트롤은 사용자가 편집 컨트롤에서 텍스트를 변경할 수 있는 작업을 수행한 경우 EN_CHANGE 컨트롤 알림 코드가 포함된 WM_COMMAND 메시지를 부모에 보냅니다. 메시지에 대한 창의 처리기는 컨트롤의 텍스트 검색과 같은 적절한 방법으로 알림 메시지에 응답합니다.
프레임워크는 다른 WM_ 메시지와 같은 제어 알림 메시지를 라우팅합니다. 그러나 한 가지 예외는 사용자가 클릭할 때 단추로 보낸 BN_CLICKED 제어 알림 메시지입니다. 이 메시지는 명령 메시지로 특별히 처리되고 다른 명령처럼 라우팅됩니다.
명령 메시지
여기에는 메뉴, 도구 모음 단추 및 액셀러레이터 키와 같은 사용자 인터페이스 개체의 WM_COMMAND 알림 메시지가 포함됩니다. 프레임워크는 다른 메시지와 다르게 명령을 처리하며 명령 대상에 설명된 대로 더 많은 종류의 개체에서 처리할 수 있습니다.
Windows 메시지 및 제어 알림 메시지
범주 1과 2의 메시지(Windows 메시지 및 컨트롤 알림)는 windows에서 처리됩니다. 클래스 CWnd
에서 파생된 클래스의 개체입니다. 여기에는 이러한 기본 클래스에서 파생된 , CMDIFrameWnd
CMDIChildWnd
, CView
CDialog
및 고유한 클래스가 포함CFrameWnd
됩니다. 이러한 개체는 Windows 창에 대한 HWND
핸들을 캡슐화합니다.
명령 메시지
범주 3의 메시지( 명령)는 문서, 문서 서식 파일 및 응용 프로그램 개체 자체와 창 및 뷰 등 다양한 개체에서 처리할 수 있습니다. 명령이 특정 개체에 직접 영향을 주는 경우 해당 개체가 명령을 처리하도록 하는 것이 좋습니다. 예를 들어 파일 메뉴의 열기 명령은 애플리케이션과 논리적으로 연결됩니다. 애플리케이션은 명령을 받으면 지정된 문서를 엽니다. 따라서 Open 명령에 대한 처리기는 애플리케이션 클래스의 멤버 함수입니다. 명령 및 개체로 라우팅되는 방법에 대한 자세한 내용은 프레임워크에서 처리기를 호출하는 방법을 참조 하세요.