注册 登录
编程论坛 VC++/MFC

怎样获取一个控件相对于父窗口的坐标位置?不是GetWindowRect()也不是GetClientRect()

widget 发布于 2010-05-13 19:47, 11236 次点击
GetWindowRect()获取的是控件相对于屏幕的坐标,不是相对于父窗口的坐标
GetClientRect()获取的是控件的客户区,
我在对话框上创建了一个button
怎样获取button相对于这个对话框的坐标,用哪个函数?
7 回复
#2
hahayezhe2010-05-13 21:41
Getparent()
#3
duhongru2010-05-14 08:35
GetParent()先获取父窗口指针,再调用其他函数
#4
zhuge3002010-05-15 09:28
你可以先通过函数GetDlaitem(IDC_....控件的ID号) 获取控件的指针,然后通过控件的指针去调用GetWindowRect()。
#5
zhuge3002010-05-15 09:28
是GetDlgitem(IDC_....控件的ID号),呵呵
#6
lizhong26132010-05-27 09:40
对话框上成功
you can try
CRect rc; pstatic->GetClientRect(rc);//pstatic为控件或子窗口指针
pstatic->MapWindowPoints((CWnd *)m_videownd,rc);//m_videownd为父窗口指针
#7
zhangyuhangk2012-03-17 22:55
我也遇到相同的问题,我是这样解决滴。父窗口的代码:
CRect rc;
CWnd* pItem = GetDlgItem(XXXXXX);
pItem->GetWindowRect(&rc);
ScreenToClient(&rc); // 把屏幕座标转换为相对父窗口客户区的座标
#8
langyuebzh2013-07-15 10:23
7楼是正解
1