1. API 메뉴 메뉴를 선택하면 WM_COMMAND 가 발생하고 LOWORD(wParam) 에 선택한 메뉴 ID가 전달된다. case WM_COMMAND: switch(LOWORD(wParam)) { case 메뉴ID: ... break; } break; 2. API 팝업메뉴 마우스 우측버튼을 누르면 보여지는 메뉴 WM_CONTEXTMENU 메시지 발생 LOWORD(lParam) : X좌표 HIWORD(lParam) : Y좌표 HMENU LoadMenu(HINSTANCE hInstance, LPCTSTR 메뉴이름포인터) HMENU GetSubmenu(HEMNU hMenu, int nPos) BOOL TrackPopupMenu(HMENU hMenu, UINT 메뉴정렬값, int x, int y, int ..
UINT_PTR SetTimer(HWND hWnd, UINT_PTR 타이머번호, // 타이머 식별번호 UINT 타이머 작동시간, // 1msec 단위로 1,000 가 1초 TIMERPROC 타이머호출함수) BOOL KillTimer(HWND hWnd, UINT_PTR 타이머번호) #include 필요 static char curTime[10]; _strtime(curTime); // 현재시간을curTime 에 저장, 20:10:39 타이머호출함수가 NULL 이면 WM_TIMER 메시지에서 처리하고 함수지정하면 void CALLBACK TimerProc(HWND hWnd, UINT iMsg, UINT idEvent, UINT dwTime) 선언해서 이 함수에서 처리한다. idEvent : 타이머번호, dw..
BOOL CreateCaret(HWND hWnd, HBITMAP hBitmap, int nWidth, int nHieght) BOOL ShowCaret(HWND hWnd) BOOL HideCaret(HWND hWnd) BOOL SetCaretPos(intX, int Y) BOOL DestroyCaret(VOID) BOOL GetTextExtentPoint(HDC hdc, LPCTSTR 입력중인 문자열 포인터, int 문자열수, LPSIZE 얻어올문자열정보) static int pos = 0; SIZE size; static char strChar[MAX_PATH]; case WM_SETFOCUS: CreateCaret(hWnd, NULL, 2, 14); ShowCaret(hWnd); SetCaretPos..
키보드 입력 시 발생하는 이벤트 WM_KEYDOWN, WM_KEYUP, WM_CHAR (문자 눌림) wParam 영문자, 숫자키 같은 문자키가 눌리면 ASCII코드가 wParam 에 전달된다. 문자키 아닌 경우 가상키코드가 wParam 에 전달된다. lParam (코드에서 거의 사용 안함) 0~15 비트 키가 연속적으로 눌릴떄 카운트 16~23비트 스캔코드(일반적으로 사용 안함) 24 확장키(숫자키패드의 Num Lock, Enter 키등)이 눌리면 1, 그렇지 않으면 0 25~28 사용안함 29 Alt 키가 눌리면 1, 아니면 0 30 메시지 보내기전(이전)에 키가 눌려져 있으면 1, 아니면 0 31 키가 눌려지면 1, 아니면 0 - 가상 키코드 VK_CANDEL Ctrl+Break VK_BACK VK_..