메모장 입니다2
Windows] API - 4) First 예제 해석 2 본문
0. 설명
-윈도우즈는 메시지 구동 시스템(Message Driven System)이다.
-메시지 구동 시스템이란 정해진 순서가 아니라,
발생한 이벤트 메시지(키보드 입력, 마우스 클릭 등)에 따라 관련된 일 처리를 진행하는 방식을 뜻한다.
-이러한 메시지 처리를 담당하는 것이 메시지 루프이다.
1. 구성(메시지 처리 루프)
while(GetMessage(&Message, NULL, 0, 0))
{
TranslateMessage(&Message);
DispatchMessage(&Message);
}
1)GetMessage
BOOL WINAPI GetMessage(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax)
-메시지 큐에서 메시지를 읽어들임. (*Message Queue: 시스템이나 사용자로부터 발생한 메시지가 임시 저장되는 곳)
-해당 메시지(lpMsg)가 WM_QUIT(프로그램을 종료해라)일 경우 FALSE, 그 외에는 모두 TRUE 리턴.
>따라서, 프로그램 종료 메시지가 뜰 때까지 메시지 루프가 반복됨.
-나머지 인자는 잘 사용되지 않으므로 패스.(책에 따르면)
2)TranslateMessage
BOOL WINAPI TranslateMessage(const MSG *lpMsg)
-키보드 입력 메시지를 가공하여 프로그램에서 사용하도록 함(책 설명이 애매함)
예) 키보드 눌림(WM_KEYDOWN)이 발생하였을 때 문자가 입력되었다는 메시지(WM_CHAR)를 생성.
3)DispatchMessage
BOOL DispatchMessage(const MSG *lpmsg);
2. MSG 구조체
-메시지 종류(자주 사용되는 것)
VM_QUIT: 프로그램이 끝남
VM_LBUTTONDOWN: 마우스 좌측 버튼 클릭
VM_KEYDOWN: 키보드 키 누름
VM_CHAR: 키보드로부터 문자가 입력됨.
VM_PAINT: 화면을 다시 그려야함
VM_CREATE: 윈도우가 처음 만들어짐
VM_DESTORY: 윈도우가 메모리에서 파괴됨
'Study > Programming' 카테고리의 다른 글
JAVA] GUI 프로그래밍 - 계산기 - source (0) | 2017.08.08 |
---|---|
JAVA] GUI 프로그래밍 - 계산기 (0) | 2017.08.08 |
Windows] API - 3) First 예제 해석 (0) | 2017.08.08 |
Windows] API - 2) First 예제 (0) | 2017.08.08 |
Windows] API - 1) 개요 (0) | 2017.08.08 |