读书人

mfc上GetWindowRect跟GetClientRect的

发布时间: 2013-12-06 17:56:43 作者: rapoo

mfc上GetWindowRect和GetClientRect的差异
现在发现一个小问题。
在对话框上插入的一个picture control控件。

方法一:



CRect rc;
GetDlgItem(IDC_STATIC_PICTURE)->GetWindowRect(rc);
ScreenToClient(rc);

_cprintf("l=%d,t=%d,w=%d,h=%d \n ",rc.left,rc.top,rc.right,rc.bottom);


结果是 53 53 438 263

方法二;

CRect rc;
GetDlgItem(IDC_STATIC_PICTURE)->GetClientRect(rc);

_cprintf("l=%d,t=%d,w=%d,h=%d \n ",rc.left,rc.top,rc.right,rc.bottom);


结果是 0 0 281 206
不是起点不一样。而是这两个大小不一样。很是奇怪。请问是什么情况?

另外还有一点。在MFC资源矿编辑的时候,这个picture的控件坐标30,30 宽高是220 ,120 这两个数据又有什么意义?
[解决办法]
看看<Windows程序设计吧>

这类似与GetDC和GetWindowDC的区别。
前者只能得到客户绘制区域的的句柄,后者可以获取到客户绘制区域和客户非绘制区域(窗口标题栏区域)的句柄

读书人网 >C++

热点推荐