메시지 처리의 기본 개념
3.메시지의 종류
윈도우 메시지
WM_로 시작하는 메시지 (WM_COMMAND는 제외)
매개 변수가 있어 메시지를 어떻게 처리할 것인지를 결정
컨트롤 통지 메시지
Button, Combo Box와 같은 제어 객체나 자식 윈도우에서 부모 윈도우로 보내는 메시지
명령 메시지
메뉴, 툴바, 엑셀레이터 키와 같은 사용자 인터페이스 객체로부터 발생되는 WM_COMMAND 메시지
4.MFC 프로그램
메시지 처리를 위해 메시지 맵을 사용
5.메시지 맵(Message Map)
메시지 번호와 메시지가 발생하였을 때 호출되는 함수의 포인터 등의 정보를 갖고 있는 테이블
프로그램에 전달된 메시지와 메시지 핸들러 함수를 연결하는데 사용
6.메시지 처리 단계
1)윈도우 클래스의 멤버 함수로 메시지 핸들러 함수를 선언한다
2)메시지 맵에 메시지와 메시지 핸들러 함수를 묶는 메시지의 매크로를 추가한다.
3)메시지 핸들러 함수의 기능을 구현한다.
7.Class Wizard->메시지
위의 세 가지 단계에서 마지막 단계의 메시지 핸들러 함수의 본체만 사용자가 구현하고 나머지는 자동으로 코딩을 해준다.
8.메시지 핸들러 함수
윈도우로부터 애플리케이션에 메시지가 전달될 때 해당 메시지를 처리하는 멤버 함수
함수 이름
윈도우 메시지의 WM_을 떼고 대신 On을 붙여 시작한다.
함수 선언시 afx_msg는 메시지 핸들러 함수라는 것을 나타내는 말이다.
예)]
WM_Paint가 발동되는 조건
생성될때
가려졋다나타날때
사이즈변경할때
invalidate로 강제로