▶ 윈도우 메세지
ㆍ 윈도우 메세지는 WM_xxx의 매크로 형태로 정의된 unsigned 정수이다.
ㆍ WPARAM 은 보통 키보드 LPARAM은 보통 마우스에 대한 이벤트를 처리한다.
▶ 메시지 큐
ㆍ 사용자가 입력을 하면 그 이벤트를 OS가 감지한 후 이를 메시지로 변환해 해당 응용 프로그램의 메시지큐에 전달을 한다)
ㆍ 메시지를 수신한 응용프로그램(Process)은 메시지 큐에서 메시지를 하나씩 꺼낸 후 처리(함수호출)를 하는 이벤트 루프 구조로 프로그램이 작동한다
ㆍ Process는 최소 1개 이상의 스레드로 구성되며 GUI를 갖는 프로세스의 메인 스레드는 메시지 큐를 가진다. 위 사진이 메시지큐 예시
메시지 핸들러 (HWND)
ㆍ 윈도우 프로시저 함수는 메시지 큐에서 메시지를 꺼내 1차 처리하는 함수
ㆍ 수백종의 메시지 중 필요한 것만 식별 후 처리하며 등록하지 않은 경우 시스템 기본 처리 규칙 적용
(winAPI32에선 switch-case였으나 MFC로 넘어가면서 Message MAP 으로 처리됨)
ㆍ 메시지마다 개별적인 처리 함수를 구현하는것이 보통이며 이를 메시지 핸들러(처리기)라고 지칭한다
ㆍ UI메뉴나 버튼클릭 시 발생하는 메시지는 구체적인 ID값을 추가로 전달한다
ㆍ 핸들(H) - > 값 (int) 또는 포인터 (void*인 경우가 많음) HINSTANCE도 타고 올라가면 void*로 재정의되어있음
WinMain 살펴보기
ㆍ 리소스 뷰에 들어가면 기본적으로 이렇게 설정되어 있다
'C++프로그래밍 > MFC' 카테고리의 다른 글
윈도우 기초 이론 - 솔루션, 프로젝트, 리소스 (0) | 2025.03.06 |
---|---|
CString 과 CFile (문자열 편하게 처리하기) (0) | 2025.03.06 |
MBCS와 유니코드 (dll,lib 주의) (0) | 2025.03.06 |
CPtrList와 CMapStringToPtr (0) | 2025.03.06 |
MFC 및 콜렉션 클래스 (0) | 2025.03.06 |