MFCJ基于单文档生成时默认最大化的设置
来源:互联网 发布:淘宝卖家信誉等级 编辑:程序博客网 时间:2024/06/07 21:51
一 方法
1.重载CMainFrame::ActivateFrame(int nCmdShow)
2.令nCmdShow=SW_SHOWMAXIMIZED
3.CXXApp::InitInstance()中的m_pMainWnd->ShowWindow(SW_SHOW);
二 具体解释
MFC单文档程序默认运行时窗口最大化,其实这是在修改MFC的窗口界面的外观,修改MFC窗口的外观或是风格 要用到类风格(CS_XXXX)和窗口风格(WS_XXXX),学过MFC的学者都知道在WinMain函数中,最开始都定义了WNDCLASS窗口类,该类可以改变窗口的图标,背景,光标等;
若要改变窗口的大小,一般在CMainFrame::PreCreateWindow(CREATESTRUCT& cs)中修改构造类cs的值,可以修改cs的cx,cy来改变大小;如果要最大化,就要修改cs.style|=WS_MAXIMIZE 使主框架类(CMainFrame)最大化,自然视图类(CView)创建时也会跟随主框架类(CMainFrame)而变化,但是此时显示时,仍然是没有变化,因为MFC主框架类(CMainFrame)的最后显示要通过SW_XXXX参数来决定,一些朋友就建议在CXXApp::InitInstance()中的m_pMainWnd->ShowWindow(SW_SHOW);前加入m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);或直接改掉,其实最终效果可以实现,但运行开始时会出现先是正常的小窗口,然后马上变成最大化,给人的视觉效果明显不好!
之所以会产生这种效果,是因为在m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);调用之前会先调用 CMainFrame::ActivateFrame(int nCmdShow);此时便会根据nCmdShow(默认为SW_SHOWNORMAL)调用显示窗口一次,SW_SHOWNORMAL会根据cs中的cx,cy,x,y来显示窗口,当再次调用m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);会形成视觉暂留!
解决办法:在MainFrm.cpp中
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs){if( !CFrameWndEx::PreCreateWindow(cs) )return FALSE;// TODO: 在此处通过修改// CREATESTRUCT cs 来修改窗口类或样式// CREATESTRUCT cs 来修改窗口类或样式/*cs.style &=~FWS_ADDTOTITLE; */cs.lpszName = "自主识别与功能重构"; ////设定窗口的尺寸 //cs.cx = 600; //cs.cy = 450; //return TRUE; return TRUE;}
- MFCJ基于单文档生成时默认最大化的设置
- MFC单文档工程窗口在启动时默认最大化
- 单文档的默认工具栏
- 使单文档窗口最大化
- 单文档程序一运行即最大化窗口的方法
- 如何禁用MFC单文档主窗口的最大化按钮?
- c# 设置默认窗体最大化
- MFC单文档程序启动时窗口最大化
- 去掉基于FormView的MFC单文档默认菜单和工具栏的方法
- 单文档初始最大化显示&&鼠标双击时窗口最大化失效
- 单文档程序窗口运行即最大化
- VC单文档程序窗口运行最大化
- 单文档初始化就最大化问题
- MFC 单文档窗口最大化显示
- MFC 单文档框架最大化显示
- CFormView 单文档程序最大化问题
- VC如何最大化单文档CFormView
- MFC单文档窗口最大化显示
- centos学习:动态链接库 .so "dll"?
- POJ --- 1639 【k度限制最小生成树】
- Native与H5交互
- 公钥和私钥
- Java实现QQ窗口自动输入
- MFCJ基于单文档生成时默认最大化的设置
- Spring (八) 使用jxl导入导出excel实例及其在spring mvc中的应用
- java八大基本数据类型
- 内核的 工作队列 使用方法,struct work_struct
- 解决vs2005打开UTF-8编码的文件乱码和修改新增文件时的默认编码方式的问题
- 添加特定分贝(db)的高斯噪声的一种简单方法
- POJ --- 1679 【判断最小生成树是否唯一】
- iOS控制器在push或者pop时导航栏出现黑块的解决办法
- OpenGL学习——(2)概念补充