参考上一条:https://mp.csdn.net/console/editor/html/106217002
直奔主题:有时候我们在CMainFrame::PreCreateWindow(CREATESTRUCT& cs)修改如下代码发现不起作用
方法1:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CMDIFrameWndEx::PreCreateWindow(cs) )
return FALSE;
// TODO: 在此处通过修改
// CREATESTRUCT cs 来修改窗口类或样式
cs.cx = 300;
cs.cy = 300;
cs.lpszClass = AfxRegisterWndClass(0);
return TRUE;
}
但是实际在运行时无法改变框架的尺寸,网友给出了一下的原因和解决方案:
这里汲取博客https://www.cnblogs.com/liujinyao/p/4192388.html经验
因为VS2010会将一些信息写入注册表,这个和之前VS2005,VS2008(SP1除外)不太一样,默认的SDI和MDI是带的BCG的一些东西。
你要修改窗口大小,可以直接在App类的InitInstance中ShowWindow();UpdateWindow()之前修改窗口大小,例如 m_pMainWnd->MoveWindow(CRect(100, 100, 600, 400), FALSE);
我采用的方法是先在App类的初始化实例时调用CleanState(),清除注