| rainroad87 |
윈도우 같은 경우에는
커널 내부에서 메시지 큐에 키 입력 이벤트가 저장됩니다.
작성하시는 프로그램에서 윈도우 내부의 메시지를 꺼내서 핸들링이 가능한데
그것을 보고 보통 메시지 펌핑이라고 부르기도 합니다.
VS사용하신다는 가정하에 Win32로 기본프로젝트 생성하실경우
OS 커널 메시지 큐에서 메시지를 꺼내오는 코드는
while (GetMessage(&msg, NULL, 0, 0))
{
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
입니다.
키 입력 이벤트를 핸들링 하는 함수의 프로토타입은
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
입니다.
키보드 입력일 경우 WM_KEYDOWN, WM_KEYUP 으로 이벤트가 발생되는데
winuser.rh 파일을 보면
#define WM_KEYDOWN 0x0100
#define WM_KEYUP 0x0101
이렇게 define되어있습니다 |
2013/08/28 |
|