本部分介绍系统如何向应用程序提供鼠标输入,以及应用程序接收和处理该输入的方式。
在本部分中
主题
描述
关于鼠标输入 的
本主题讨论鼠标输入。
使用鼠标输入
本部分介绍与鼠标输入关联的任务。
鼠标输入引用
功能
名字
描述
_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
当光标将鼠标悬停在窗口的非client区域上时,在对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
包含有关输入设备(键盘或鼠标)生成的模拟消息的信息。
INPUT
包含用于合成输入事件的信息,例如击键、鼠标移动和鼠标单击。
LASTINPUTINFO
包含最后一个输入的时间。
MOUSEINPUT
包含有关模拟鼠标事件的信息。
MOUSEMOVEPOINT
包含有关鼠标在屏幕坐标中的位置的信息。
TRACKMOUSEEVENT
由 TrackMouseEvent 函数用来跟踪鼠标指针何时离开窗口或将鼠标悬停在窗口上指定时间。