다음을 통해 공유


WM_LBUTTONDOWN 메시지

커서가 창의 클라이언트 영역에 있는 동안 사용자가 마우스 왼쪽 단추를 누르면 게시됩니다. 마우스가 캡처되지 않으면 커서 아래 창에 메시지가 게시됩니다. 마우스가 캡처되면 마우스를 캡처한 창에 메시지가 게시됩니다.

창은 WindowProc 함수를 통해 이 메시지를 받습니다.

#define WM_LBUTTONDOWN                  0x0201

매개 변수

wParam

다양한 가상 키가 눌러져 있는지 여부를 나타냅니다. 이 매개 변수는 다음 값 중 하나 이상일 수 있습니다.

의미
MK_CONTROL
0x0008
Ctrl 키가 눌려져 있습니다.
MK_LBUTTON
0x0001
마우스 왼쪽 단추가 눌려져 있습니다.
MK_MBUTTON
0x0010
마우스 가운데 단추가 눌려져 있습니다.
MK_RBUTTON
0x0002
마우스 오른쪽 단추가 눌려져 있습니다.
MK_SHIFT
0x0004
Shift 키가 눌려져 있습니다.
MK_XBUTTON1
0x0020
첫 번째 X 단추가 눌려져 있습니다.
MK_XBUTTON2
0x0040
두 번째 X 단추가 눌러져 있습니다.

lParam

하위 단어는 커서의 x 좌표를 지정합니다. 좌표는 클라이언트 영역의 왼쪽 위 모서리를 기준으로 합니다.

상위 단어는 커서의 y 좌표를 지정합니다. 좌표는 클라이언트 영역의 왼쪽 위 모서리를 기준으로 합니다.

반환 값

애플리케이션이 이 메시지를 처리하는 경우 0을 반환해야 합니다.

LRESULT CALLBACK WndProc(_In_ HWND hWnd, _In_ UINT msg, _In_ WPARAM wParam, _In_ LPARAM lParam)
{
    POINT pt;

    switch (msg)
    {

    case WM_LBUTTONDOWN:
            {
                pt.x = GET_X_LPARAM(lParam);
                pt.y = GET_Y_LPARAM(lParam);
            }
        break;

    default:
        return DefWindowProc(hWnd, msg, wParam, lParam);
    }
    return 0;
}

자세한 예제는 GitHub의 Windows 클래식 샘플을 참조하세요.

설명

위에서 설명한 대로 x 좌표는 반환 값의 하위 short에 있고 y 좌표는 반환 값의 상위 short에 있습니다. 둘 다 여러 모니터가 있는 시스템에서 음수 값을 사용할 수 있으므로 부호 있는 값을 나타냅니다. 반환 값이 변수에 할당된 경우 MAKEPOINTS 매크로를 사용하여 반환 값에서 POINTS 구조체를 가져올 수 있습니다. GET_X_LPARAM 또는 GET_Y_LPARAM 매크로를 사용하여 x 또는 y 좌표를 추출할 수도 있습니다.

중요

LOWORD 또는 HIWORD 매크로는 여러 모니터가 있는 시스템에서 잘못된 결과를 반환하므로 이 매크로를 사용하여 커서 위치의 x 및 y 좌표를 추출하지 마세요. 모니터가 여러 개 있는 시스템에는 음수 x 및 y 좌표가 있을 수 있으며 LOWORDHIWORD는 좌표를 부호 없는 수량으로 처리합니다.

ALT 키를 눌렀는지 감지하려면 GetKeyState에서 VK_MENU< 0인지 확인하세요. GetAsyncKeyState가 아니어야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버
Windows 2000 Server[데스크톱 앱만]
헤더
Winuser.h(Windowsx.h 포함)

추가 정보

참조

GET_X_LPARAM

GET_Y_LPARAM

GetCapture

GetKeyState

SetCapture

WM_LBUTTONDBLCLK

WM_LBUTTONUP

개념

마우스 입력

기타 리소스

MAKEPOINTS

POINTS