| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1108 人关注过本帖
标题:GetWindowRect(&rc)(其中CRect rc)用MessageBox显示出窗口中不同button控件 ...
只看楼主 加入收藏
serena1992
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2011-8-5
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
GetWindowRect(&rc)(其中CRect rc)用MessageBox显示出窗口中不同button控件的坐标都是一样的,求解~~
下面是我在BOOL CSignalStrengthTestDlg::OnInitDialog()函数中写的代码,用来查看ID为IDCANCEL的按钮中心所在的屏幕的位置
图片附件: 游客没有浏览图片的权限,请 登录注册

运行结果如下:
图片附件: 游客没有浏览图片的权限,请 登录注册

我在这个函数中修改了button的ID,改成IDC_STARTDRAW,同样用MessageBox来看该按钮在屏幕中的中心坐标:
图片附件: 游客没有浏览图片的权限,请 登录注册

结果如下:
图片附件: 游客没有浏览图片的权限,请 登录注册

这两个按钮在窗口中的分布不在一起,
图片附件: 游客没有浏览图片的权限,请 登录注册
而且messagebox都显示为0,这个究竟出了什么问题了呢?
搜索更多相关主题的帖子: button 而且 中心 
2011-08-18 16:43
zhoufeng1988
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:北京
等 级:贵宾
威 望:27
帖 子:1432
专家分:6329
注 册:2009-5-31
收藏
得分:0 
确定已经添加按钮吗?

[ 本帖最后由 zhoufeng1988 于 2011-8-18 18:43 编辑 ]
2011-08-18 18:39
zhoufeng1988
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:北京
等 级:贵宾
威 望:27
帖 子:1432
专家分:6329
注 册:2009-5-31
收藏
得分:20 
还有,用%d代替%f
2011-08-18 18:42
serena1992
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2011-8-5
收藏
得分:0 
以下是引用zhoufeng1988在2011-8-18 18:42:58的发言:

还有,用%d代替%f
我确定已经增加了按钮的,试着用%d代替了%f,发现这个方法是可行的,我后来在网上仔细看了下,发现GetWindowRect()得到的是在屏幕坐标系下的RECT(即以屏幕左上角为原点)而rect的构造函数反应的是像素,像素不可能为double类型,所以只能用%d才对。(这个解释合理吗?)
2011-08-19 10:13
zhoufeng1988
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:北京
等 级:贵宾
威 望:27
帖 子:1432
专家分:6329
注 册:2009-5-31
收藏
得分:0 
恩。
坐标是LONG类型的,应该用%d格式符或者%ld。
2011-08-19 12:55
serena1992
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2011-8-5
收藏
得分:0 
嗯,学习了,谢谢!
2011-08-19 14:56
快速回复:GetWindowRect(&rc)(其中CRect rc)用MessageBox显示出窗口中不同butto ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022988 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved