Hwan'Story › @kim-hwan

API - 키보드 입력

· (수정 ) · 조회 93

소스코드

#include <windows.h>

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
HINSTANCE g_hInst;
LPCTSTR lpszClass = TEXT("Key");
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow) {
  HWND hWnd;
  MSG Message;
  WNDCLASS WndClass;
  g_hInst = hInstance;

  WndClass.cbClsExtra = 0;
  WndClass.cbWndExtra = 0;
  WndClass.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
  WndClass.hCursor = LoadCursor(NULL, IDC_CROSS);
  WndClass.hIcon = LoadIcon(NULL, IDI_ERROR);
  WndClass.hInstance = hInstance;
  WndClass.lpfnWndProc = WndProc;
  WndClass.lpszClassName = lpszClass;
  WndClass.lpszMenuName = NULL;
  WndClass.style = CS_HREDRAW | CS_VREDRAW;
  RegisterClass( & WndClass);
  hWnd = CreateWindow(lpszClass, lpszClass, WS_OVERLAPPEDWINDOW | WS_VSCROLL | WS_HSCROLL,
    CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
    NULL, (HMENU) NULL, hInstance, NULL);
  ShowWindow(hWnd, nCmdShow);

  while (GetMessage( & Message, NULL, 0, 0)) {
    TranslateMessage( & Message);
    DispatchMessage( & Message);
  }
  return (int) Message.wParam;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam) {
    HDC hdc;
    PAINTSTRUCT ps;
    static TCHAR str[256];
    int len;
    switch (iMessage) {
    case WM_DESTROY:
      PostQuitMessage(0);
      return 0;
    case WM_CHAR:
      len = lstrlen(str);
      str[len] = (TCHAR) wParam;
      str[len + 1] = 0;
      InvalidateRect(hWnd, NULL, FALSE);
      return 0;
    case WM_PAINT:
      hdc = BeginPaint(hWnd, & ps);
      TextOut(hdc, 100, 100, str, lstrlen(str));
      EndPaint(hWnd, & ps);
      return 0;
    }
    return (DefWindowProc(hWnd, iMessage, wParam, lParam));
  }
  1. static TCHAR str[256];
  2. case WM_CHAR: len=lstrlen(str); str[len]=(TCHAR)wParam; str[len+1]=0;
  3. InvalidateRect(hWnd,NULL,FALSE); return 0;
  4. case WM_PAINT: hdc=BeginPaint(hWnd, &ps); TextOut(hdc, 100, 100, str, lstrlen(str)); EndPaint(hWnd, &ps);

실행결과

image.png

migrated from https://boongubbang.tistory.com/3

관련 게시글