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 좌표가 있을 수 있으며 LOWORD 및 HIWORD는 좌표를 부호 없는 수량으로 처리합니다.
ALT 키를 눌렀는지 감지하려면 GetKeyState에서 VK_MENU< 0인지 확인하세요. GetAsyncKeyState가 아니어야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 |
Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 |
Windows 2000 Server[데스크톱 앱만] |
헤더 |
|