VC如何获取对话框中控件的坐标
2016-09-27 15:58
190 查看
VC如何获取对话框中控件的坐标
GetWindowRect是取得窗口在屏幕坐标系下的RECT坐标(包括客户区和非客户区),这样可以得到窗口的大小和相对屏幕左上角(0,0)的位置。
GetClientRect取得窗口客户区(不包括非客户区)在客户区坐标系下的RECT坐标,可以得到窗口的大小,而不能得到相对屏幕的位置,它的top和left都为0,right和botton是宽和高,因为这个矩阵是在客户区坐标系下(相对于窗口客户区的左上角)的。
ClientToScreen把客户区坐标系下的RECT坐标转换为屏幕坐标系下的RECT坐标.
ScreenToClient把屏幕坐标系下的RECT坐标转换为客户区坐标系下的RECT坐标.
我们对同一个窗口先GetWindowRect取得一个RECT,再用ScreenToClient转换到客户坐标系。然后GetClientRect取得一个RECT,再用ClientToScreen转换到屏幕坐标系。显然,GetWindowRect取得的矩阵不小于GetClientRect取得的矩阵。因为前者包含了非客户区,而后包括了客户区。
引自:http://blog.chinaunix.net/u/25372/showart_304363.html
所以要获得一个控件再对话框中的坐标的实现代码是:
CRect lpRec;
GetDlgItem(IDC_SLIDER_output)->GetWindowRect(&lpRec);
ScreenToClient(&lpRec);
详细可看http://blog.pfan.cn/miaowei/39345.html
GetWindowRect是取得窗口在屏幕坐标系下的RECT坐标(包括客户区和非客户区),这样可以得到窗口的大小和相对屏幕左上角(0,0)的位置。
GetClientRect取得窗口客户区(不包括非客户区)在客户区坐标系下的RECT坐标,可以得到窗口的大小,而不能得到相对屏幕的位置,它的top和left都为0,right和botton是宽和高,因为这个矩阵是在客户区坐标系下(相对于窗口客户区的左上角)的。
ClientToScreen把客户区坐标系下的RECT坐标转换为屏幕坐标系下的RECT坐标.
ScreenToClient把屏幕坐标系下的RECT坐标转换为客户区坐标系下的RECT坐标.
我们对同一个窗口先GetWindowRect取得一个RECT,再用ScreenToClient转换到客户坐标系。然后GetClientRect取得一个RECT,再用ClientToScreen转换到屏幕坐标系。显然,GetWindowRect取得的矩阵不小于GetClientRect取得的矩阵。因为前者包含了非客户区,而后包括了客户区。
引自:http://blog.chinaunix.net/u/25372/showart_304363.html
所以要获得一个控件再对话框中的坐标的实现代码是:
CRect lpRec;
GetDlgItem(IDC_SLIDER_output)->GetWindowRect(&lpRec);
ScreenToClient(&lpRec);
详细可看http://blog.pfan.cn/miaowei/39345.html
相关文章推荐
- VC 如何获取对话框中控件的坐标
- VC如何获取对话框中控件的坐标
- VC如何获取对话框中控件的坐标
- VC如何获取对话框中控件的区域
- MFC对话框应用程序 如何在对话框窗口显示前获取窗口(控件)的屏幕坐标位置
- VC 获取控件在对话框中的坐标
- MFC对话框应用程序 如何在对话框窗口显示前获取窗口(控件)的屏幕坐标位置
- VC 获取控件在对话框中的坐标
- VC 获取控件在对话框中的坐标
- 如何获得vc控件的屏幕坐标
- MFC 获取控件在对话框上的坐标
- VC++ MFC获取对话框上控件的位置
- VC++ -- 如何获取windows系统的串口号加载到combo box控件中
- VC中获取窗口控件相对客户区的坐标
- 如何获取控件在窗体上的位置坐标和大小值
- 如何获取控件在窗体上的位置坐标和大小值
- VC中如何改变对话框中控件的颜色
- Qt如何获取控件的坐标
- VC获取对话框中的控件位置
- 获取鼠标在Picture控件中的坐标,并显示到对话框的状态栏中