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的区别。
前者只能得到客户绘制区域的的句柄,后者可以获取到客户绘制区域和客户非绘制区域(窗口标题栏区域)的句柄