마우스 입력
이 섹션에서는 시스템이 애플리케이션에 마우스 입력을 제공하는 방법과 이 입력을 애플리케이션이 수신하고 처리하는 방법을 설명합니다.
섹션 내용
항목 | 설명 |
---|---|
마우스 입력 정보 |
이 항목에서는 마우스 입력에 대해 설명합니다. |
마우스 입력 사용 |
이 섹션에서는 마우스 입력과 관련된 작업을 다룹니다. |
마우스 입력 참조 |
Functions
속성 | 설명 |
---|---|
_TrackMouseEvent | 마우스 포인터가 창을 벗어나거나 지정된 시간 동안 창 위에 있을 때 메시지를 게시합니다. 이 함수는 TrackMouseEvent가 있으면 호출하고 그렇지 않으면 에뮬레이트합니다. |
BlockInput | 키보드 및 마우스 입력 이벤트가 애플리케이션에 도달하지 못하도록 차단합니다. |
DragDetect | 마우스를 캡처하고 사용자가 왼쪽 단추를 놓거나, Esc 키를 누르거나, 지정된 점 주위의 끌기 사각형 밖으로 마우스를 이동할 때까지 이동을 추적합니다. 끌기 사각형의 너비와 높이는 GetSystemMetrics 함수에서 반환된 SM_CXDRAG 및 SM_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 | 커서가 창의 비클라이언트 영역에 있는 동안 사용자가 첫 번째 또는 두 번째 X 단추를 두 번 클릭하면 게시됩니다. 이 메시지는 커서가 포함된 창에 게시됩니다. 창이 마우스를 캡처한 경우 이 메시지는 게시되지 않습니다. |
WM_NCXBUTTONDOWN | 커서가 창의 비클라이언트 영역에 있는 동안 사용자가 첫 번째 또는 두 번째 X 단추를 누르면 게시됩니다. 이 메시지는 커서가 포함된 창에 게시됩니다. 창이 마우스를 캡처한 경우 이 메시지는 게시되지 않습니다. |
WM_NCXBUTTONUP | 커서가 창의 비클라이언트 영역에 있는 동안 사용자가 첫 번째 또는 두 번째 X 단추를 놓으면 게시됩니다. 이 메시지는 커서가 포함된 창에 게시됩니다. 창이 마우스를 캡처한 경우 이 메시지는 게시되지 않습니다. |
WM_RBUTTONDBLCLK | 커서가 창의 클라이언트 영역에 있는 동안 사용자가 마우스 오른쪽 단추를 두 번 클릭하면 게시됩니다. 마우스가 캡처되지 않으면 커서 아래 창에 메시지가 게시됩니다. 그렇지 않으면 마우스를 캡처한 창에 메시지가 게시됩니다. |
WM_RBUTTONDOWN | 커서가 창의 클라이언트 영역에 있는 동안 사용자가 마우스 오른쪽 단추를 두 번 누르면 게시됩니다. 마우스가 캡처되지 않으면 커서 아래 창에 메시지가 게시됩니다. 그렇지 않으면 마우스를 캡처한 창에 메시지가 게시됩니다. |
WM_RBUTTONUP | 커서가 창의 클라이언트 영역에 있는 동안 사용자가 마우스 오른쪽 단추를 놓으면 게시됩니다. 마우스가 캡처되지 않으면 커서 아래 창에 메시지가 게시됩니다. 그렇지 않으면 마우스를 캡처한 창에 메시지가 게시됩니다. |
WM_XBUTTONDBLCLK | 커서가 창의 클라이언트 영역에 있는 동안 사용자가 첫 번째 또는 두 번째 X 단추를 두 번 클릭하면 게시됩니다. 마우스가 캡처되지 않으면 커서 아래 창에 메시지가 게시됩니다. 그렇지 않으면 마우스를 캡처한 창에 메시지가 게시됩니다. |
WM_XBUTTONDOWN | 커서가 창의 클라이언트 영역에 있는 동안 사용자가 첫 번째 또는 두 번째 X 단추를 누르면 게시됩니다. 마우스가 캡처되지 않으면 커서 아래 창에 메시지가 게시됩니다. 그렇지 않으면 마우스를 캡처한 창에 메시지가 게시됩니다. |
WM_XBUTTONUP | 커서가 창의 클라이언트 영역에 있는 동안 사용자가 첫 번째 또는 두 번째 X 단추를 놓으면 게시됩니다. 마우스가 캡처되지 않으면 커서 아래 창에 메시지가 게시됩니다. 그렇지 않으면 마우스를 캡처한 창에 메시지가 게시됩니다. |
구조체
속성 | 설명 |
---|---|
HARDWAREINPUT | 키보드나 마우스 외에 입력 디바이스에서 생성된 시뮬레이션된 메시지에 대한 정보를 포함합니다. |
INPUT | 키 입력, 마우스 이동 및 마우스 클릭과 같은 입력 이벤트를 합성하는 데 사용되는 정보를 포함합니다. |
LASTINPUTINFO | 마지막 입력 시간을 포함합니다. |
MOUSEINPUT | 시뮬레이션된 마우스 이벤트에 대한 정보를 포함합니다. |
MOUSEMOVEPOINT | 화면 좌표에서 마우스의 위치에 대한 정보를 포함합니다. |
TRACKMOUSEEVENT | 마우스 포인터가 창을 벗어나거나 지정된 시간 동안 창 위를 가리키는 경우를 TrackMouseEvent 함수가 추적하는 데 사용됩니다. |
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기