首页
社区
课程
招聘
[旧帖] [求助]求助,有关GetCursorPos的返回值 0.00雪花
发表于: 2011-4-12 20:02 1561

[旧帖] [求助]求助,有关GetCursorPos的返回值 0.00雪花

2011-4-12 20:02
1561
是这样的,我想用Win32汇编实现这样一个功能:如果鼠标在窗口的某个特定范围内双击,则执行特定的某段代码。
即,在窗口范围内接收到鼠标双击事件时,用GetCursorPos得到此时鼠标的坐标,如果这个坐标落在特定范围内,就执行某某代码。

但是写好后出现了这样的问题:当屏幕分辨率改变时,原来可以正确实现这个功能的代码,就不可以了。修改一下范围值,又能实现了。甚至当屏幕分辨率不改变,只是移动了窗口,也会出错。

书上说GetCursorPos返回的是光标的坐标值,是一个POINT型结构体,而POINT型结构体是这样定义的
typedef struct tagPOINT { // pt  
    LONG x;
    LONG y;
} POINT;

不过,我还是不大明白,这个坐标值是什么意思?是以什么为单位或者基准的?它和分辨率有什么关系吗?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
GetCursorPos函数获取光标的位置,以屏幕坐标表示。幕坐标采用平面直角坐标,但坐标原点不在屏幕中心,而在屏幕左上角。由左上角向右为横轴正向,由左上角向下为纵轴正向。
单位应该是pixel,所以跟分辨率有关,你可以利用ScreenToClient函数将屏幕坐标转换为窗口坐标来解决这个问题。
2011-4-12 21:02
0
雪    币: 500
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
太感谢了!
2011-4-12 21:15
0
游客
登录 | 注册 方可回帖
返回
//