MFC中窗口最大化以后GetWindowRect获取的大小

对话框的最大化

MFC新建一个基于对话框的程序,资源里添加一个按钮,GetWindowRect,双击该按钮,添加响应函数

void CtestDialogDlg::OnBnClickedButton1()
{
	// TODO:  在此添加控件通知处理程序代码
	CRect rc;
	CString str;
	this->GetWindowRect(rc);
	str.Format(_T("GetWindowRect:(%d,%d,%d,%d)"), rc.left, rc.top, rc.right, rc.bottom);
	AfxMessageBox(str);
}

最大化对话框,点击该按钮,如图:
在这里插入图片描述
本机的屏幕分辨率是1366*768,任务栏在下面高度是40,所以最大化以后的GetWindowRect的大小是:(0,0,1366,728) --> InflactRect(8,8) 放大8 --> (-8,-8,1374,736)

单文档的最大化

在view视图里截获消息void CSDI2View::OnGetwindowrect()后,就不在响应mainframe里对应的消息了。void CMainFrame::OnGetwindowrect()。
只有去掉view里的,才能响应到mainframe里的。
在这里插入图片描述
在这里插入图片描述
最大化以后,MainFrame的WindowRect是 (-8,-8,1374,736),与对话框最大化后一样。
在这里插入图片描述
在这里插入图片描述

总结

窗口最大化以后,GetWindowRect的大小是 在屏幕大小rect去掉任务栏rect后,放大8个像素,即 InflateRect(8,8)
自己测试的,没有找到官方文档说明。若有博友找到请在评论区告诉我 😃

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值