VS2010开发MFC程序无法通过改变CREATESTRUCT结构来控制窗体大小的解决办法
在使用VS1020中的VC++开发SDI程序的时候发现仅修改
?
BOOL CXX::PreCreateWindow(CREATESTRUCT& cs)
?
方法中CREATESTRUCT结构,如:
?
?
? ? ? ? cs.x = 300;
cs.y = 200;
cs.cx = 600;
cs.cy = 400;
cs.lpszName = _T("测试程序");
cs.style = WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX;
?
是不能够得到想要的窗体大小的.
?
解决方法:
?
修改程序的App类中的ExitInstance方法,添加如下语句:
?
CleanState();//清除程序在注册表写入的状态信息
?
这个方法一般在以项目名称命名的.cpp文件中
?
得到如下:
?
int CXXApp::ExitInstance()
{
//TODO: 处理可能已添加的附加资源
AfxOleTerm(FALSE);
CleanState();//清除程序在注册表写入的状态信息
?
return CWinAppEx::ExitInstance();
}
?
即可