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
标题为"释放鼠标"的控件的响应函数代码为:
ClipCursorNULL
这行代码非常简单,就是使鼠标可以自由移动,不受限制。
把以上程序编译好了以后运行,点下"控制鼠标移动范围"按钮,鼠标就只能在这个窗口的范围以内活动,离不开这个窗口了,点下"释放鼠标"按钮,鼠标就恢复正常了。
知道了如何控制鼠标范围,该讲讲如何移动鼠标了。移动鼠标非常简单,只需要一个API函数SetCursorPos,这个函数有2个参数,第1个参数是屏幕的x坐标,第2个参数是屏幕的y坐标,它可以把鼠标移动到指定的坐标上去。
模拟鼠标的功能也非常简单,比如模拟点鼠标右键,可以使用下面两行代码:
mouse_eventMOUSEEVENTF_RIGHTDOWN0000
mouse_eventMOUSEEVENTF_RIGHTUP0000
mouse_event函数的功能就是模拟鼠标,第1行代码是模拟按下鼠标右键,第2行代码是模拟鼠标右键弹起,这两行代码就模拟了1次鼠标右键的操作,如果想模拟点鼠标左键的操作,只要以上两行代码中的MOUSEEVENTF_RIGHTDOWN和MOUSEEVENTF_RIGHTUP参数换成MOUSEEVENTF_LEFTDOWN和MOUSEEVENTF_LEFTUP就可以了。
鼠标的模拟操作讲完了。以上的程序在Windows98下,使用Visual V++6.0编译成功,调试正常。
本期知识点:控制鼠标的API函数