标题: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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-347862-1-1.html




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

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