多语言展示
当前在线:1535今日阅读:142今日分享:25

windows下怎么用c/c++获取鼠标位置

习惯使用了linux系统中的xdotools进行键鼠自动操作,在windows下也可以实现某些xodtools工具的功能,比如本文介绍的获取鼠标位置,具体可以参考以下内容。
一、建立工程
1

这里以vc6建立一个win32控制台程序,首先点击vc6菜单栏上的“文件”——“新建”。

2

在”新建“窗口,选择win32 console application ,并命名工程名为test。设置完成后点击”确定'。

3

在接下来的窗口选择”一个空工程“,点击完成。

4

会提示用户建立新的工程骨架,点击确定后即可完成工程建立。

5

再次点击vc6菜单栏上的”文件“——”新建“。在弹出的窗口中选择”c++ source file'即c++源文件,命名为test.cxx,点击确定即可将test.cxx添加到test工程中。

二、用GetCursorPos获取鼠标位置
1

首先在windows下可以通过GetCursorPos()来获取鼠标的屏幕坐标位置。函数原型如下BOOL GetCursorPos(LPPOINT lpPoint);

2

函数很简单,只需要调用,然后将鼠标位置保存到一个POINT结构中即可。POINT结构如下,一个保存x坐标,一个保存y坐标。typedef struct tagPOINT{LONG  x;LONG  y;} POINT, *PPOINT, NEAR *NPPOINT, FAR *LPPOINT;

3

要调用GetCursorPos()函数需要先加上windows.h的头文件。

4

知道了获取鼠标位置的函数,代码就简单了。POINT pt = {0,0};GetCursorPos(&pt); printf('x=%d,y=%d\n', pt.x,pt.y);return 0;编译执行程序如下图所示。

5

接下来需要优化一下程序,让程序始终输出鼠标坐标的位置,直到用户将其退出。整个的程序源码如下:#include #includeint main(int ac,char **pav){    LONG x=-1, y=-1;    POINT pt= {0,0};        for(;;)    {                        GetCursorPos(&pt);    //获取鼠标当前位置               if ((x!=pt.x) || (y!=pt.y)) //如果位置与之前的位置不一样则输出新位置        {            printf('x=%d,y=%d\n',pt.x, pt.y);            x=pt.x,y=pt.y;        }                }        return 0;} 执行效果如下图所示。

推荐信息