游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3124|回复: 8

郁闷的GetCursorPos,知道用的来帮帮忙啊!!!

[复制链接]

85

主题

824

帖子

878

积分

高级会员

Rank: 4

积分
878
QQ
发表于 2004-10-24 14:47:00 | 显示全部楼层 |阅读模式
我用下面的方法得到鼠标在窗口中的位置,
但在下面是好好的,到了上面就会得到小于鼠标位置的Y值,
应该怎么办???
RECT rcWindow;
GetWindowRect (hWnd, &rcWindow);
POINT p;
GetCursorPos(&p);
p.x -= rcWindow.left ;
p.y -= rcWindow.top;
sf_20041024144747.jpg

13

主题

978

帖子

978

积分

高级会员

Rank: 4

积分
978
发表于 2004-10-24 17:19:00 | 显示全部楼层

Re:郁闷的GetCursorPos,知道用的来帮帮忙啊!!!

是不是因为你把鼠标移动到窗口外面去了?

22

主题

274

帖子

274

积分

中级会员

Rank: 3Rank: 3

积分
274
发表于 2004-10-24 19:07:00 | 显示全部楼层

Re:郁闷的GetCursorPos,知道用的来帮帮忙啊!!!

是不是因为这里存在多个参考坐标系,比如屏幕原点,窗口原点和窗口CLIENT区原点都不重合,问题会不会出在这里.

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
发表于 2004-10-24 19:17:00 | 显示全部楼层

Re:郁闷的GetCursorPos,知道用的来帮帮忙啊!!!

GetWindowRect的坐标原点在窗口左上角,可不在客户区左上角呀!
http://www.autsak.com/X_AdvCom_Get.asp?UserID=27

60

主题

1319

帖子

1319

积分

金牌会员

Rank: 6Rank: 6

积分
1319
发表于 2004-10-24 19:47:00 | 显示全部楼层

Re:郁闷的GetCursorPos,知道用的来帮帮忙啊!!!

GetCursorPos(&p);
ScreenToClient(hWnd,&p);

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
发表于 2004-10-24 19:49:00 | 显示全部楼层

Re:郁闷的GetCursorPos,知道用的来帮帮忙啊!!!

GetClientRect
好象是这个能获得客户区矩形……忘了。手上没带字典
http://www.autsak.com/X_AdvCom_Get.asp?UserID=27

85

主题

824

帖子

878

积分

高级会员

Rank: 4

积分
878
QQ
 楼主| 发表于 2004-10-24 20:21:00 | 显示全部楼层

Re:郁闷的GetCursorPos,知道用的来帮帮忙啊!!!

使用
GetCursorPos(&p);
ScreenToClient(hWnd,&p);
时,上面是对了,
下面又不对了..............
晕死了~~

85

主题

824

帖子

878

积分

高级会员

Rank: 4

积分
878
QQ
 楼主| 发表于 2004-10-24 21:17:00 | 显示全部楼层

Re:郁闷的GetCursorPos,知道用的来帮帮忙啊!!!

终于搞定了,
先用
RECT rcWindow,reClient;
GetWindowRect(m_hWindow, &rcWindow);
GetClientRect(m_hWindow, &reClient);
得到窗口位置和客户区位置,
再把原来的窗口大小加上二者的差值,
最后用
GetCursorPos(&p);
ScreenToClient(hWnd,&p);
得到鼠标位置就可以了,
谢谢上面的朋友的热心回答,
还有,
我手上也没带字典(AND电脑),呵呵

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
发表于 2004-10-24 21:20:00 | 显示全部楼层

Re:郁闷的GetCursorPos,知道用的来帮帮忙啊!!!

同情。没电脑是不是很苦……
我都快活不下去了……
http://www.autsak.com/X_AdvCom_Get.asp?UserID=27
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-22 22:52

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表