Visual C++编程控制鼠标

http://it.china-b.com/cxsj/vc/20090821/153197_1.html

鼠标是现在计算机的标准配置,很多软件都有控制鼠标的功能,比如,有的保密软件可以使鼠标移动限制在一定范围以内,有的可以模拟鼠标的,有的可以使鼠标自己移动。要实现以上的功能,必须使用Windows的API函数。

我们以下面的程序例子,来说明如何控制鼠标。我们使用Visual C++6.0来写这个程序。打开Visual C++6.0,使用MFC AppWizard新建1个基于对话框的工程,工程名为Mouse,在对话框上加上2个button控件,一个标题为"控制鼠标移动范围",另外1个的标题是"释放鼠标"在MFC ClassWizard中添加两个当我们使用鼠标单击这两个控件时响应的函数,标题为"控制鼠标移动范围"的控件的响应函数代码为:

首先使用GetWindowRect获得这个程序窗口的范围

CRect rect

this-GetWindowRect&rect

然后使用ClipCursor函数把鼠标控制在这个范围以内,这个函数的功能就是控制鼠标的范围。

ClipCursor&rect

标题为"释放鼠标"的控件的响应函数代码为:

ClipCursorNULL

这行代码非常简单,就是使鼠标可以自由移动,不受限制。

把以上程序编译好了以后运行,点下"控制鼠标移动范围"按钮,鼠标就只能在这个窗口的范围以内活动,离不开这个窗口了,点下"释放鼠标"按钮,鼠标就恢复正常了。

知道了如何控制鼠标范围,该讲讲如何移动鼠标了。移动鼠标非常简单,只需要一个API函数SetCursorPos,这个函数有2个参数,第1个参数是屏幕的x坐标,第2个参数是屏幕的y坐标,它可以把鼠标移动到指定的坐标上去。

模拟鼠标的功能也非常简单,比如模拟点鼠标右键,可以使用下面两行代码:

mouse_eventMOUSEEVENTF_RIGHTDOWN0000

mouse_eventMOUSEEVENTF_RIGHTUP0000

mouse_event函数的功能就是模拟鼠标,第1行代码是模拟按下鼠标右键,第2行代码是模拟鼠标右键弹起,这两行代码就模拟了1次鼠标右键的操作,如果想模拟点鼠标左键的操作,只要以上两行代码中的MOUSEEVENTF_RIGHTDOWN和MOUSEEVENTF_RIGHTUP参数换成MOUSEEVENTF_LEFTDOWN和MOUSEEVENTF_LEFTUP就可以了。

鼠标的模拟操作讲完了。以上的程序在Windows98下,使用Visual V++6.0编译成功,调试正常。

本期知识点:控制鼠标的API函数

原文地址:https://www.cnblogs.com/carl2380/p/1924551.html