关于限制窗口的最小和最大尺寸:
只要响应WM_GETMINMAXINFO消息既可以了。。例如添加消息响应函数OnGetMinMaxInfo()如下:
void CMyDialogEx::OnGetMinMaxInfo(MINMAXINFO* lpMMI)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
lpMMI->ptMinTrackSize.x = 310;
lpMMI->ptMinTrackSize.y = 490;
lpMMI->ptMaxTrackSize.x = 620;
lpMMI->ptMaxTrackSize.y = 1000;
CDialog::OnGetMinMaxInfo(lpMMI);
}
关于MFC双缓冲绘图的代码:
void CMyDialog::OnPaint()
{
CPaintDC dc(this);
CRect rcClient;
GetClientRect(&rcClient);
CDC BufferDC;
CBitmap BufferBmp;
BufferDC.CreateCompatibleDC(&dc); //依附窗口DC创建兼容内存DC
BufferBmp.CreateCompatibleBitmap(&dc, rcClient.Width(), rcClient.Height()); //创建兼容位图
BufferDC.SelectObject(&BufferBmp); //将位图选择进内存DC
BufferDC.FillSolidRect(&rcClient, RGB(255, 255, 255)); //按原来背景填充客户区,不然会是黑色
。。。。。。
//画图,添加你要画图的代码,不过用BufferDC画,而不是dc
。。。。。
dc->BitBlt(0,0,rc.Width(),rc.Height(),&BufferDC,0,0,SRCCOPY);
}