首页 > 代码库 > 问题解决——限制窗体的最小尺寸

问题解决——限制窗体的最小尺寸

曾经都是用对话框做东西,这次用的SDI。

突然想限制窗体的最小尺寸,避免缩成一团,就非常任意的先百度了一下。

网上好多方法,有在OnSize里面SetWindowPos或者MoveWindow的,也有在OnSizing里面用这两个函数的。

显然这都不是好办法,会刷屏乱闪。


正确而又优雅的做法非常easy,处理框架窗体的WM_GETMINMAXINFO消息就可以。

比如

void CMainFrame::OnGetMinMaxInfo(MINMAXINFO* lpMMI)
{
	// TODO: 在此加入消息处理程序代码和/或调用默认值
	if (lpMMI->ptMinTrackSize.x<=951)
	{
		lpMMI->ptMinTrackSize.x=951;
	}

	if (lpMMI->ptMinTrackSize.y<=681)
	{
		lpMMI->ptMinTrackSize.y=681;
	}

	CFrameWndEx::OnGetMinMaxInfo(lpMMI);
}
仅仅要指定了值。剩下的事情,MFC会给你做好,就是这么简单。


问题解决——限制窗体的最小尺寸