다음을 통해 공유


마우스 입력

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

이 섹션에서는

주제 묘사
마우스 입력 대한
이 항목에서는 마우스 입력에 대해 설명합니다.
마우스 입력 사용하여
이 섹션에서는 마우스 입력과 관련된 작업에 대해 설명합니다.
마우스 입력 참조

함수

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

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

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

알림을

이름 묘사
WM_APPCOMMAND 예를 들어 마우스를 사용하여 애플리케이션 명령 단추를 클릭하거나 키보드에 애플리케이션 명령 키를 입력하여 사용자가 애플리케이션 명령 이벤트를 생성했음을 창에 알립니다.
WM_CAPTURECHANGED 마우스 캡처가 손실된 창으로 전송됩니다.
WM_LBUTTONDBLCLK 커서가 창의 클라이언트 영역에 있는 동안 사용자가 마우스 왼쪽 단추를 두 번 클릭하면 게시됩니다. 마우스를 캡처하지 않으면 메시지가 커서 아래 창에 게시됩니다. 그렇지 않으면 메시지가 마우스를 캡처한 창에 게시됩니다.
WM_LBUTTONDOWN 커서가 창의 클라이언트 영역에 있는 동안 사용자가 마우스 왼쪽 단추를 누를 때 게시됩니다. 마우스를 캡처하지 않으면 메시지가 커서 아래 창에 게시됩니다. 그렇지 않으면 메시지가 마우스를 캡처한 창에 게시됩니다.
WM_LBUTTONUP 커서가 창의 클라이언트 영역에 있는 동안 사용자가 마우스 왼쪽 단추를 놓을 때 게시됩니다. 마우스를 캡처하지 않으면 메시지가 커서 아래 창에 게시됩니다. 그렇지 않으면 메시지가 마우스를 캡처한 창에 게시됩니다.
WM_MBUTTONDBLCLK 커서가 창의 클라이언트 영역에 있는 동안 마우스 가운데 단추를 두 번 클릭하면 게시됩니다. 마우스를 캡처하지 않으면 메시지가 커서 아래 창에 게시됩니다. 그렇지 않으면 메시지가 마우스를 캡처한 창에 게시됩니다.
WM_MBUTTONDOWN 커서가 창의 클라이언트 영역에 있는 동안 사용자가 마우스 가운데 단추를 누를 때 게시됩니다. 마우스를 캡처하지 않으면 메시지가 커서 아래 창에 게시됩니다. 그렇지 않으면 메시지가 마우스를 캡처한 창에 게시됩니다.
WM_MBUTTONUP 커서가 창의 클라이언트 영역에 있는 동안 사용자가 마우스 가운데 단추를 놓으면 게시됩니다. 마우스를 캡처하지 않으면 메시지가 커서 아래 창에 게시됩니다. 그렇지 않으면 메시지가 마우스를 캡처한 창에 게시됩니다.
WM_MOUSEACTIVATE 커서가 비활성 창에 있고 사용자가 마우스 단추를 누르면 전송됩니다. 부모 창은 자식 창이 DefWindowProc 함수에 전달하는 경우에만 이 메시지를 받습니다.
WM_MOUSEHOVER TrackMouseEvent대한 이전 호출에서 지정한 기간 동안 커서가 창의 클라이언트 영역 위로 마우스를 가져가면 창에 게시됩니다.
WM_MOUSEHWHEEL 마우스의 가로 스크롤 휠이 기울어지거나 회전될 때 포커스 창으로 전송됩니다. DefWindowProc함수는 메시지를 창의 부모로 전파합니다. 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 커서가 창의 비클라이언트 영역에 있는 동안 사용자가 XBUTTON1 또는 XBUTTON2 두 번 클릭하면 게시됩니다. 이 메시지는 커서가 포함된 창에 게시됩니다. 창에서 마우스를 캡처한 경우 이 메시지는 게시되지 않습니다.
WM_NCXBUTTONDOWN 커서가 창의 비클라이언트 영역에 있는 동안 사용자가 XBUTTON1 또는 XBUTTON2 누를 때 게시됩니다. 이 메시지는 커서가 포함된 창에 게시됩니다. 창에서 마우스를 캡처한 경우 이 메시지는 게시되지 않습니다.
WM_NCXBUTTONUP 커서가 창의 비클라이언트 영역에 있는 동안 사용자가 XBUTTON1 또는 XBUTTON2 해제할 때 게시됩니다. 이 메시지는 커서가 포함된 창에 게시됩니다. 창에서 마우스를 캡처한 경우 이 메시지는 게시되지 않습니다.
WM_RBUTTONDBLCLK 커서가 창의 클라이언트 영역에 있는 동안 마우스 오른쪽 단추를 두 번 클릭하면 게시됩니다. 마우스를 캡처하지 않으면 메시지가 커서 아래 창에 게시됩니다. 그렇지 않으면 메시지가 마우스를 캡처한 창에 게시됩니다.
WM_RBUTTONDOWN 커서가 창의 클라이언트 영역에 있는 동안 마우스 오른쪽 단추를 누를 때 게시됩니다. 마우스를 캡처하지 않으면 메시지가 커서 아래 창에 게시됩니다. 그렇지 않으면 메시지가 마우스를 캡처한 창에 게시됩니다.
WM_RBUTTONUP 커서가 창의 클라이언트 영역에 있는 동안 마우스 오른쪽 단추를 놓으면 게시됩니다. 마우스를 캡처하지 않으면 메시지가 커서 아래 창에 게시됩니다. 그렇지 않으면 메시지가 마우스를 캡처한 창에 게시됩니다.
WM_XBUTTONDBLCLK 커서가 창의 클라이언트 영역에 있는 동안 사용자가 XBUTTON1 또는 XBUTTON2 두 번 클릭할 때 게시됩니다. 마우스를 캡처하지 않으면 메시지가 커서 아래 창에 게시됩니다. 그렇지 않으면 메시지가 마우스를 캡처한 창에 게시됩니다.
WM_XBUTTONDOWN 커서가 창의 클라이언트 영역에 있는 동안 사용자가 XBUTTON1 또는 XBUTTON2 누를 때 게시됩니다. 마우스를 캡처하지 않으면 메시지가 커서 아래 창에 게시됩니다. 그렇지 않으면 메시지가 마우스를 캡처한 창에 게시됩니다.
WM_XBUTTONUP 커서가 창의 클라이언트 영역에 있는 동안 사용자가 XBUTTON1 또는 XBUTTON2 해제할 때 게시됩니다. 마우스를 캡처하지 않으면 메시지가 커서 아래 창에 게시됩니다. 그렇지 않으면 메시지가 마우스를 캡처한 창에 게시됩니다.

구조

이름 묘사
HARDWAREINPUT 키보드 또는 마우스 이외의 입력 디바이스에서 생성된 시뮬레이션된 메시지에 대한 정보를 포함합니다.
입력 키 입력, 마우스 이동 및 마우스 클릭과 같은 입력 이벤트를 합성하는 데 사용되는 정보를 포함합니다.
LASTINPUTINFO 마지막 입력 시간을 포함합니다.
MOUSEINPUT 시뮬레이션된 마우스 이벤트에 대한 정보를 포함합니다.
MOUSEMOVEPOINT 화면 좌표에서 마우스의 위치에 대한 정보를 포함합니다.
TRACKMOUSEEVENT TrackMouseEvent 함수에서 마우스 포인터가 창을 벗어나거나 지정된 시간 동안 창 위로 마우스를 가져가는 시기를 추적하는 데 사용됩니다.