-
Win32 API 6강. (1) 키보드Win32 API with 나우캠퍼스 2022. 8. 16. 15:09
1. 키보드
WM_CHAR
▩ 문자 키에 발생하는 메시지
- WM_CHAR
▩ 대소문자 구분 방법
- 문자에 대해 대소문자 구분이 가능.
- wParam : 아스키 코드 값
사용예시.
static char string[100]; static int nIndex = 0; switch (message) { case WM_CHAR : string[nIndex] = (char)wParam; nIndex++; InvalidateRect(hWnd, NULL, TRUE); break; case WM_PAINT: { hdc = BeginPaint(hWnd, &ps); TextOut(hdc, 10, 10, string, strlen(string)); EndPaint(hWnd, &ps); } break;
WM_KEYDOWN
▩ 모든 키에 대해 발생하는 메시지
- 문자에 대해 대소문자를 구분하지 못함.
- WM_KEYDOWN
▩ 키 구분 방법
- wParam : 가상 키 코드, 문자는 대문자
▩ 가상 키 코드
- VK_LEFT, VK_HOME 등
- '1', 'A' 문자상수 사용
사용예시.
switch (message) { case WM_KEYDOWN: switch (wParam) { case 'A': MessageBox(hWnd, "A키가 눌렸습니다", "A", MB_OK); break; case VK_LEFT: MessageBox(hWnd, "LEFT키가 눌렸습니다", "◀", MB_OK); break; }
GetAsyncKeyState()
▩ 실시간으로 키 입력을 체크
▩ 메시지 큐에 저장되는 키 메시지의 단점을 보완
▩ 키 눌림이 있으면 음수값 리턴
SHORT GetAsyncKeyState( [in] int vKey );
'Win32 API with 나우캠퍼스' 카테고리의 다른 글
Win32 API 6강. (3) 타이머 (0) 2022.08.16 Win32 API 6강. (2) 마우스 (0) 2022.08.16 Win32 API 5강. 그래픽 오브젝트(2) 비트맵 (0) 2022.08.15 Win32 API 5강. 그래픽 오브젝트(1) 스톡 오브젝트와 GDI 오브젝트 (0) 2022.08.15 Win32 API 4강. 그래픽(3) 문자열의 색상 설정 및 InvalidateRect() (0) 2022.08.15