请问如何得到一个按钮的位置,大小?

bigrobert 2004-12-26 02:46:00
rt
谢谢
...全文
208 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
fisker0303 2004-12-27
  • 打赏
  • 举报
回复
GetWindowRect 得到整个窗口(控件)的位置信息。
GetClientRect 得到窗口(控件)的客户区信息。
fanqing 2004-12-27
  • 打赏
  • 举报
回复
同意 icefox127(icefox) ( )
chenjieread 2004-12-26
  • 打赏
  • 举报
回复
好多问题我都不懂,看来以后要常来啊!!!!!!
kugou123 2004-12-26
  • 打赏
  • 举报
回复
先获取按钮句柄,再调用GetWindowRect函数。
icefox127 2004-12-26
  • 打赏
  • 举报
回复
CRect r;
CButton *p=(CButton *)GetDlgItem(IDC_BUTTON);
p->GetWindowRect(&r);

也可以用
p->GetClientRect(&r);
p->ClientToScreen(&r);

这里怎么不能修改帖子,好麻烦
icefox127 2004-12-26
  • 打赏
  • 举报
回复
后面写错了一点,是用
p->GetClientRect(&rect);
p->ClientToScreen(&rect); //不是ClientTOWindow
icefox127 2004-12-26
  • 打赏
  • 举报
回复
Crect r;
CButton *p=(CButton *)GetDlgItem(IDC_BUTTON);
p->GetWindowRect(r);

也可以用
p->GetClientRect(r);
再用ClientToWindow进行转换
yangwer 2004-12-26
  • 打赏
  • 举报
回复
WM_DRAWITEM消息的处理函数有一个参数是LPDRAWITEMSTRUCT lpDrawItemStruct,你可以截获该消息得到lpDrawItemStruct->rcItem的值,这个值就是控件矩形的位置。我也是初学者,有没有别的方法我就不知道了。
bigrobert 2004-12-26
  • 打赏
  • 举报
回复
有没有人帮帮忙啊?!
bigrobert 2004-12-26
  • 打赏
  • 举报
回复
我试过了,调试时显示这个得到的是整个窗口的尺寸啊!
babynuaa 2004-12-26
  • 打赏
  • 举报
回复
CWnd::GetWindowRect(LPRECT lpRect);

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧