关于获得对话框中子控件相对该对话框客户区的位置
2013-04-01 15:19
323 查看
CRect rc; CWnd* pwnd = GetDlgItem(IDC_PIC); pwnd->GetClientRect(&rc); pwnd->MapWindowPoints(this,&rc);
前段时间,要实现鼠标点选指定点坐标值功能,由于MFC中鼠标事件(滑动或者单击)中,返回的point的值,其值的坐标原点是响应该事件的窗口的客户区(即不包括标题栏,也就是该对话框窗口的名字(不是ID号))
所以,子控件的位置最好也是基于同样原点。
有两种实现方式:
CRect rc; CWnd* pwnd = GetDlgItem(IDC_PIC); pwnd->GetClientRect(&rc); pwnd->MapWindowPoints(this,&rc);上述代码中,IDC_PIC是子控件的ID号,this表示转换到父窗口的坐标系(具体点就是以这个父窗口的客户区左上角为原点的坐标系)
注意这里一定要用
pwnd->GetClientRect(&rc);
方法2:
CRect rc; CWnd* pwnd = GetDlgItem(IDC_PIC); pwnd->GetWindowRect(&rc); ScreenToClient(&rc);//或者this->ScreenToClient(&rc) 其实,this表示就是当前的父窗口
ScreenToClient(&rc)表示将rc由电脑屏幕坐标系转换到窗口坐标系(具体点就是以窗口的客户区左上角为原点的坐标系)
注意:这里一定要用
pwnd->GetWindowRect(&rc);
相关文章推荐
- MFC中,如何获得对话框控件相对于父窗口(对话框窗口)的位置
- MFC中获得对话框控件相对于父窗口的位置
- MFC中,如何获得对话框控件相对于父窗口(对话框窗口)的位置 及Invalidate(TRUE)的闪屏问题
- 如何设置和获得控件相对于Canvas的位置
- [MFC] 获得客户区在对话框上的位置
- 关于最外层为相对布局时,通过动态设置布局内控件位置问题
- 获得控件在对话框中的位置
- 求取按钮控件在对话框中的相对位置
- 如何设置和获得控件相对于Canvas的位置
- 如何获得窗体上控件相对于屏幕的位置?
- C# Winform 如何获得窗体上控件相对于屏幕的位置
- 关于相对布局中控件摆放位置的一个需要注意的小地方
- vc获得控件相对窗体的位置
- 从csdn上整理的帖子2_关于控件自适用对话框大小
- MFC如何获取控件相对于窗口的左边,以及鼠标相对于控件的位置
- jQuery获得页面元素的绝对/相对位置 分类: JavaScript 2010-08-09 15:53 868人阅读 评论(0) 收藏
- SpriteBuilder中子节点的相对位置(%百分比定位)
- UCGUI 控件作为对话框的客户区的子窗口
- WPF中获取控件之间的相对位置
- 孙鑫VC++深入详解:Lesson7 Part4 ---对话框上各个控件之间循环接受回车键获得焦点