Win32 API with 나우캠퍼스

Win32 API 6강. (2) 마우스

코다람쥐 2022. 8. 16. 15:23

1. 마우스

마우스 메시지


▩ 마우스 이동시 발생

▩  마우스 위치 정보

LOWORD(lParam) => x좌표

HIWORD(lParam) => y좌표

 

사용예시.

    static char string[100];
    static int nXPos, nYPos;

    switch (message)
    {
    case WM_MOUSEMOVE:
        nXPos = LOWORD(lParam);
        nYPos = HIWORD(lParam);
        InvalidateRect(hWnd, NULL, TRUE);
        break;
    case WM_PAINT:
        {
            hdc = BeginPaint(hWnd, &ps);
            sprintf_s(string, "x좌표 : %d, y좌표 : %d", nXPos, nYPos);
            TextOut(hdc, 0, 0, string, strlen(string));
            EndPaint(hWnd, &ps);
        }
        break;
    }

 

 

그 외 마우스 메시지


▩ WM_LBUTTONDOWN

- 마우스 왼쪽 버튼 눌림

 

▩ WM_LBUTTONUP

- 마우스 왼쪽 버튼 놓임

 

▩ WM_RBUTTONDOWN

- 마우스 오른쪽 버튼 눌림

 

▩ WM_RBUTTONUP

- 마우스 오른쪽 버튼 놓임

 

마우스 버튼 코드


▩ wParam으로 전달되는 코드

MK_LBUTTON, MK_MBUTTON, MK_RBUTTON, MK_CONTROL, MK_SHIFT

 

▩ 드래그

WM_MOUSEMOVE + MK_LBUTTON