vs2010 设置MFC程序窗口大小无效的问题
2014-10-07 13:19
393 查看
转载自:http://blog.sina.com.cn/s/blog_62f521600100ml2l.html
vs2010 设置MFC程序窗口大小
问:BOOL CMainFrame::PreCreateWindow(CREATESTRUCT&cs)
{
if(!CFrameWnd::PreCreateWindow(cs))
{
return FALSE;
}
cs.style &= ~WS_OVERLAPPED
cs.cy = 300;
cs.cx = 100;
return TRUE;
}
先上代码
在vs2010中,为什么运行时不会按要求改变窗口大小呢?而且运行的程序我手动拖窗口右下角改变大小后,再次启动时就是改变后的大小,为什么不是随机大小,或按我的CREATESTRUCT变量cs.cx,cs.cy改变大小呢?
解决方法:一.因为VS2010会将一些信息写入注册表,这个和之前VS2005,VS2008(SP1除外)不太一样,默认的SDI和MDI是带的BCG的一些东西。
你 要修改窗口大小,可以直接在App类的InitInstance中ShowWindow();UpdateWindow()之前修改窗口大小,例如 m_pMainWnd->MoveWindow(CRect(100, 100, 600, 400), FALSE);
二。
MFC的应用程序向导在VC6.0中和VS2010中有很多区别。VS2010的中的MFC的应用程序向导增加了不少新的选项。默认情况下建立MFC应用 程序,在VS2010中确实会出现楼主所说的现象。不过这个不和VC6.0的冲突,因为VS2010中的应用程序向导的默认选项和VC6.0的应用程序向 导的默认选项不同,楼主调整选项为和VC6.0一样即可。在VS2010的MFC的应用程序向导的第二步选择MFC标准,第6步选择使用经典菜单。其效果 即和VC6.0产生的效果一样。
程序在注册表里保留了FRAME上次的状态,包括大小位置以及各工具类窗口的布局等.
解决方法有二,其中第一个简单, 第二更稳妥:
1.)在InitInstance(..)调用CleanState(_T("WorkSpace"));
2.)让MainFrame按它的习惯布局完了再调整大小, 在此之前让MainFrame不显示.关键点: WM_CREATE, WM_WINDOWPOSCHANGING
你可能还会发现FRAME有时候会闪一下, 看着不舒服, 用第二个方法同样管用.
相关文章推荐
- vs2010 如何设置MFC程序窗口大小
- 【整理】MFC单文档程序窗口大小的设置
- 在MFC的MDI程序中设置子窗口客户区大小
- MFC 设置程序固定窗口大小
- VS2010中如何设置IDE窗口背景颜色、MFC框架背景颜色以及对话框背景颜色?
- 如何正常设置VS 2005 字体大小与颜色(附助解决包加载失败的问题)
- vs无法设置断点或断点无效问题解决方法
- Chrome浏览器下CSS字体大小设置小于12px无效问题
- VS2010中c++程序调用PostgreSQL数据库C接口libpq.lib的项目Properties设置
- MFC中设置窗口大小位置
- 在MFC中如何设置窗口的初始大小?
- VS2010 MFC中改变static字体颜色、大小、背景颜色(自定义类),及手动关联变量的方法
- VS2012下基于Glut OpenGL绘制点(添加设置点大小)示例程序:
- 关于使Visual Studio 2005/2008/2010开发的MFC程序具有XP风格的问题
- MFC根据图片大小来设置窗口
- MFC中设置窗口大小位置
- 关于空项目MFC程序设置问题
- 通过窗口大小适时调整以及子窗口的动态布局来解决窗口在不同DPI设置下的显示问题
- 手工编写MFC的窗口程序(不用VS自带的MFC代码)
- MFC 设置程序位置及大小