마우스 입력(키보드 및 마우스 입력)

이 섹션에서는 시스템이 애플리케이션에 마우스 입력을 제공하는 방법과 애플리케이션이 해당 입력을 수신하고 처리하는 방법을 설명합니다.

섹션 내용

항목 Description
마우스 입력 정보
이 항목에서는 마우스 입력에 대해 설명합니다.
마우스 입력 사용
이 섹션에서는 마우스 입력과 관련된 작업을 설명합니다.
마우스 입력 참조

Functions

속성 Description
_TrackMouseEvent 마우스 포인터가 창을 벗어나거나 지정된 시간 동안 창 위로 마우스를 가져가면 메시지를 게시합니다. 이 함수는 TrackMouseEvent 가 있는 경우 호출하고, 그렇지 않으면 에뮬레이트합니다.
DragDetect 마우스를 캡처하고 사용자가 왼쪽 단추를 놓거나, Esc 키를 누르거나, 지정된 점 주위의 끌기 사각형 밖으로 마우스를 이동할 때까지 이동을 추적합니다. 끌기 사각형의 너비와 높이는 GetSystemMetrics 함수에서 반환하는 SM_CXDRAGSM_CYDRAG 값에 의해 지정됩니다.
EnableMouseInPointer 마우스가 포인팅 디바이스 역할을 할 수 있도록 합니다.
GetCapture 마우스를 캡처한 창에 대한 핸들(있는 경우)을 검색합니다. 한 번에 하나의 창만 마우스를 캡처할 수 있습니다. 이 창은 커서가 테두리 내에 있는지 여부에 관계없이 마우스 입력을 받습니다.
GetDoubleClickTime 마우스의 현재 두 번 클릭 시간을 검색합니다. 두 번 클릭은 마우스 단추를 두 번 클릭하는 계열이며, 두 번째 클릭은 첫 번째 단추 이후 지정된 시간 내에 발생합니다. 두 번 클릭하는 시간은 두 번 클릭의 첫 번째와 두 번째 클릭 사이에 발생할 수 있는 최대 밀리초 수입니다.
GetMouseMovePointsEx 마우스 또는 펜의 최대 64개의 이전 좌표 기록을 검색합니다.
ReleaseCapture 현재 스레드의 창에서 마우스 캡처를 해제하고 일반적인 마우스 입력 처리를 복원합니다. 마우스를 캡처한 창은 커서 핫 스폿이 다른 스레드의 창에 있는 동안 마우스 단추를 클릭하는 경우를 제외하고 커서의 위치에 관계없이 모든 마우스 입력을 받습니다.
SetCapture 마우스 캡처를 현재 스레드에 속한 지정된 창으로 설정합니다. SetCapture 는 마우스가 캡처 창 위에 있을 때 또는 마우스가 캡처 창 위에 있고 단추가 여전히 아래쪽에 있는 동안 마우스 단추를 누를 때 마우스 입력을 캡처합니다. 한 번에 하나의 창만 마우스를 캡처할 수 있습니다.
마우스 커서가 다른 스레드에서 만든 창 위에 있는 경우 시스템은 마우스 단추가 다운된 경우에만 지정된 창으로 마우스 입력을 전달합니다.
SetDoubleClickTime 마우스의 두 번 클릭 시간을 설정합니다. 두 번 클릭은 마우스 단추를 두 번 클릭하는 계열이며, 두 번째 클릭은 첫 번째 단추 이후 지정된 시간 내에 발생합니다. 두 번 클릭하는 시간은 두 번 클릭의 첫 번째 및 두 번째 클릭 사이에 발생할 수 있는 최대 밀리초 수입니다.
SwapMouseButton 마우스 왼쪽 단추와 오른쪽 단추의 의미를 반대로 되돌리거나 복원합니다.
TrackMouseEvent 마우스 포인터가 창을 벗어나거나 지정된 시간 동안 창 위로 마우스를 가져가면 메시지를 게시합니다.

다음 함수는 사용되지 않습니다.

기능 Description
mouse_event 마우스 동작 및 단추 클릭을 합성합니다.

공지

속성 Description
WM_CAPTURECHANGED 마우스 캡처가 손실되는 창으로 전송됩니다.
WM_LBUTTONDBLCLK 커서가 창의 클라이언트 영역에 있는 동안 사용자가 마우스 왼쪽 단추를 두 번 클릭하면 게시됩니다. 마우스를 캡처하지 않으면 커서 아래 창에 메시지가 게시됩니다. 그렇지 않으면 메시지가 마우스를 캡처한 창에 게시됩니다.
WM_LBUTTONDOWN 커서가 창의 클라이언트 영역에 있는 동안 사용자가 마우스 왼쪽 단추를 누를 때 게시됩니다. 마우스를 캡처하지 않으면 커서 아래 창에 메시지가 게시됩니다. 그렇지 않으면 메시지가 마우스를 캡처한 창에 게시됩니다.
WM_LBUTTONUP 커서가 창의 클라이언트 영역에 있는 동안 사용자가 마우스 왼쪽 단추를 놓을 때 게시됩니다. 마우스를 캡처하지 않으면 커서 아래 창에 메시지가 게시됩니다. 그렇지 않으면 메시지가 마우스를 캡처한 창에 게시됩니다.
WM_MBUTTONDBLCLK 커서가 창의 클라이언트 영역에 있는 동안 사용자가 마우스 가운데 단추를 두 번 클릭하면 게시됩니다. 마우스를 캡처하지 않으면 커서 아래 창에 메시지가 게시됩니다. 그렇지 않으면 메시지가 마우스를 캡처한 창에 게시됩니다.
WM_MBUTTONDOWN 커서가 창의 클라이언트 영역에 있는 동안 사용자가 마우스 가운데 단추를 누를 때 게시됩니다. 마우스를 캡처하지 않으면 커서 아래 창에 메시지가 게시됩니다. 그렇지 않으면 메시지가 마우스를 캡처한 창에 게시됩니다.
WM_MBUTTONUP 커서가 창의 클라이언트 영역에 있는 동안 사용자가 마우스 가운데 단추를 놓을 때 게시됩니다. 마우스를 캡처하지 않으면 커서 아래 창에 메시지가 게시됩니다. 그렇지 않으면 메시지가 마우스를 캡처한 창에 게시됩니다.
WM_MOUSEACTIVATE 커서가 비활성 창에 있고 사용자가 마우스 단추를 누르면 전송됩니다. 부모 창은 자식 창이 DefWindowProc 함수에 전달하는 경우에만 이 메시지를 받습니다.
WM_MOUSEHOVER TrackMouseEvent에 대한 이전 호출에 지정된 기간 동안 커서가 창의 클라이언트 영역을 가리키면 창에 게시됩니다.
WM_MOUSEHWHEEL 마우스의 가로 스크롤 휠이 기울어지거나 회전하면 포커스 창으로 전송됩니다. TheDefWindowProcfunction은 창의 부모에 메시지를 전파합니다. 메시지를 처리하는 창을 발견할 때까지 DefWindowProc 에서 부모 체인을 전파하므로 메시지의 내부 전달은 없어야 합니다.
WM_MOUSELEAVE 커서가 TrackMouseEvent에 대한 이전 호출에 지정된 창의 클라이언트 영역을 떠날 때 창에 게시됩니다.
WM_MOUSEMOVE 커서가 이동할 때 창에 게시됩니다. 마우스를 캡처하지 않으면 커서가 포함된 창에 메시지가 게시됩니다. 그렇지 않으면 메시지가 마우스를 캡처한 창에 게시됩니다.
WM_MOUSEWHEEL 마우스 휠을 회전할 때 포커스 창으로 전송됩니다. DefWindowProc 함수는 창의 부모에 메시지를 전파합니다. 메시지의 내부 전달은 없어야 합니다. DefWindowProc 는 메시지를 처리하는 창을 찾을 때까지 부모 체인을 전파하기 때문입니다.
WM_NCHITTEST 창의 특정 화면 좌표에 해당하는 부분을 확인하기 위해 창으로 전송됩니다. 예를 들어 커서가 움직일 때, 마우스 단추를 누르거나 놓을 때 또는 WindowFromPoint와 같은 함수 호출에 대한 응답으로 발생할 수 있습니다. 마우스를 캡처하지 않으면 커서 아래 창으로 메시지가 전송됩니다. 그렇지 않으면 메시지가 마우스를 캡처한 창으로 전송됩니다.
WM_NCLBUTTONDBLCLK 커서가 창의 비클라이언트 영역 내에 있는 동안 사용자가 마우스 왼쪽 단추를 두 번 클릭하면 게시됩니다. 이 메시지는 커서가 포함된 창에 게시됩니다. 창이 마우스를 캡처한 경우 이 메시지는 게시되지 않습니다.
WM_NCLBUTTONDOWN 커서가 창의 비클라이언트 영역 내에 있는 동안 사용자가 마우스 왼쪽 단추를 누를 때 게시됩니다. 이 메시지는 커서가 포함된 창에 게시됩니다. 창이 마우스를 캡처한 경우 이 메시지는 게시되지 않습니다.
WM_NCLBUTTONUP 커서가 창의 비클라이언트 영역 내에 있는 동안 사용자가 마우스 왼쪽 단추를 놓을 때 게시됩니다. 이 메시지는 커서가 포함된 창에 게시됩니다. 창이 마우스를 캡처한 경우 이 메시지는 게시되지 않습니다.
WM_NCMBUTTONDBLCLK 커서가 창의 비클라이언트 영역 내에 있는 동안 사용자가 마우스 가운데 단추를 두 번 클릭하면 게시됩니다. 이 메시지는 커서가 포함된 창에 게시됩니다. 창이 마우스를 캡처한 경우 이 메시지는 게시되지 않습니다.
WM_NCMBUTTONDOWN 커서가 창의 비클라이언트 영역 내에 있는 동안 사용자가 가운데 마우스 단추를 누를 때 게시됩니다. 이 메시지는 커서가 포함된 창에 게시됩니다. 창이 마우스를 캡처한 경우 이 메시지는 게시되지 않습니다.
WM_NCMBUTTONUP 커서가 창의 비클라이언트 영역 내에 있는 동안 사용자가 가운데 마우스 단추를 놓을 때 게시됩니다. 이 메시지는 커서가 포함된 창에 게시됩니다. 창이 마우스를 캡처한 경우 이 메시지는 게시되지 않습니다.
WM_NCMOUSEHOVER 커서가TrackMouseEvent에 대한 이전 호출에 지정된 기간 동안 창의 비클라이언트 영역 위로 마우스를 가져가면 창에 게시됩니다.
WM_NCMOUSELEAVE 커서가TrackMouseEvent에 대한 이전 호출에 지정된 창의 비클라이언트 영역을 벗어나면 창에 게시됩니다.
WM_NCMOUSEMOVE 창의 비클라이언트 영역 내에서 커서를 이동할 때 창에 게시됩니다. 이 메시지는 커서가 포함된 창에 게시됩니다. 창이 마우스를 캡처한 경우 이 메시지는 게시되지 않습니다.
WM_NCRBUTTONDBLCLK 커서가 창의 비클라이언트 영역 내에 있는 동안 마우스 오른쪽 단추를 두 번 클릭하면 게시됩니다. 이 메시지는 커서가 포함된 창에 게시됩니다. 창이 마우스를 캡처한 경우 이 메시지는 게시되지 않습니다.
WM_NCRBUTTONDOWN 커서가 창의 비클라이언트 영역 내에 있는 동안 사용자가 마우스 오른쪽 단추를 누를 때 게시됩니다. 이 메시지는 커서가 포함된 창에 게시됩니다. 창이 마우스를 캡처한 경우 이 메시지는 게시되지 않습니다.
WM_NCRBUTTONUP 커서가 창의 비클라이언트 영역 내에 있는 동안 사용자가 마우스 오른쪽 단추를 놓을 때 게시됩니다. 이 메시지는 커서가 포함된 창에 게시됩니다. 창이 마우스를 캡처한 경우 이 메시지는 게시되지 않습니다.
WM_NCXBUTTONDBLCLK 커서가 창의 비클라이언트 영역에 있는 동안 사용자가 첫 번째 또는 두 번째 X 단추를 두 번 클릭할 때 게시됩니다. 이 메시지는 커서가 포함된 창에 게시됩니다. 창이 마우스를 캡처한 경우 이 메시지는 게시되지 않습니다.
WM_NCXBUTTONDOWN 커서가 창의 비클라이언트 영역에 있는 동안 사용자가 첫 번째 또는 두 번째 X 단추를 누를 때 게시됩니다. 이 메시지는 커서가 포함된 창에 게시됩니다. 창이 마우스를 캡처한 경우 이 메시지는 게시되지 않습니다.
WM_NCXBUTTONUP 커서가 창의 비클라이언트 영역에 있는 동안 사용자가 첫 번째 또는 두 번째 X 단추를 놓을 때 게시됩니다. 이 메시지는 커서가 포함된 창에 게시됩니다. 창이 마우스를 캡처한 경우 이 메시지는 게시되지 않습니다.
WM_RBUTTONDBLCLK 커서가 창의 클라이언트 영역에 있는 동안 마우스 오른쪽 단추를 두 번 클릭하면 게시됩니다. 마우스가 캡처되지 않으면 커서 아래 창에 메시지가 게시됩니다. 그렇지 않으면 메시지가 마우스를 캡처한 창에 게시됩니다.
WM_RBUTTONDOWN 커서가 창의 클라이언트 영역에 있는 동안 사용자가 마우스 오른쪽 단추를 누를 때 게시됩니다. 마우스가 캡처되지 않으면 커서 아래 창에 메시지가 게시됩니다. 그렇지 않으면 메시지가 마우스를 캡처한 창에 게시됩니다.
WM_RBUTTONUP 커서가 창의 클라이언트 영역에 있는 동안 사용자가 마우스 오른쪽 단추를 놓을 때 게시됩니다. 마우스가 캡처되지 않으면 커서 아래 창에 메시지가 게시됩니다. 그렇지 않으면 메시지가 마우스를 캡처한 창에 게시됩니다.
WM_XBUTTONDBLCLK 커서가 창의 클라이언트 영역에 있는 동안 사용자가 첫 번째 또는 두 번째 X 단추를 두 번 클릭할 때 게시됩니다. 마우스가 캡처되지 않으면 커서 아래 창에 메시지가 게시됩니다. 그렇지 않으면 메시지가 마우스를 캡처한 창에 게시됩니다.
WM_XBUTTONDOWN 커서가 창의 클라이언트 영역에 있는 동안 사용자가 첫 번째 또는 두 번째 X 단추를 누를 때 게시됩니다. 마우스가 캡처되지 않으면 커서 아래 창에 메시지가 게시됩니다. 그렇지 않으면 메시지가 마우스를 캡처한 창에 게시됩니다.
WM_XBUTTONUP 커서가 창의 클라이언트 영역에 있는 동안 사용자가 첫 번째 또는 두 번째 X 단추를 놓을 때 게시됩니다. 마우스가 캡처되지 않으면 커서 아래 창에 메시지가 게시됩니다. 그렇지 않으면 메시지가 마우스를 캡처한 창에 게시됩니다.

구조체

속성 Description
MOUSEMOVEPOINT 화면 좌표에서 마우스의 위치에 대한 정보를 포함합니다.
TRACKMOUSEEVENT TrackMouseEvent 함수에서 마우스 포인터가 창을 벗어나거나 지정된 시간 동안 창 위로 마우스를 가져가는 시기를 추적하는 데 사용됩니다.