MFC多文档程序启动无子窗口的实现
刚学MFC的我们,肯定会从一个基本MFC程序开始。
而VC++6.0的MFC基础类提供了三种创建方式:单文档、多文档、对话框。
当我们创建多文档应用程序的时候,会自动启动一个子窗口。
在我们平时使用软件的时候,比如打开Photoshop之类的,会发现并没有子窗口出现。而MFC多文档默认打开一个子窗口显得多余,那么我们怎么关闭它呢?
按照基础向导创建一个MFC多文档应用程序,这里就不做解释。

然后通过向导条,选中我们的应用程序,选中InitInstance。这个方法是对我们的类进行初始化。

这个时候我们先运行一下,看看默认效果。

大家可以看见,里面有一个子窗口,而我们现在不想要它。我先告诉你怎么操作,然后再解释,这样感官会更直接。

定义到ParseCommandLine(cmdInfo);后面然后添加
cmdInfo.m_nShellCommand=CCommandLineInfo::FileNothing;
这时候再次运行,惊讶吧!子窗口确实没有了。

这里讲讲为何添加这段代码就能做到这个目的。
CCommandLineInfo是一个对MFC程序创建的时候通过调用命令进行初始化的类。这个类的一个方法FileNothing就是说不要创建文件。而cmdInfo则是CCommandLineInfo的一个对象,并将这个对象传递给ParseCommandLine这个函数从而实现执行cmd命令参数。m_nShellCommand则是函数的一个参数,对应的命令是FileNew也就是打开新文件。
插入的代码的意思就是创建一个CCommandLineInfo对象,然后传递给ParseCommandLine函数,在ParseCommandLine函数中将m_nShellCommand设置为FileNew,它的参数为FileNothing,即没有文件。
关于整个调用过程,我们可以找到这个类的定义,进行查看。

至此,本文介绍完毕。
好记性不如烂笔头,lunvey将记录这些学习过程,用小白的话语解释给大家。
代码之路苦作舟的童鞋们,学海无涯,我学到了,你呢?如果能帮到你,记得点赞哦~
MFC多文档程序启动无子窗口的实现的更多相关文章
- MFC单文档程序结构
MFC单文档程序结构三方面: Doc MainFrame View
- VC-基础:MFC单文档程序架构解析
MFC单文档程序架构解析 这里我以科院杨老师的单文档程序来分析一下MFC单文档的程序架构,纯属个人见解,不当之处烦请指教! 首先我们了解到的是 图(一) theApp 是唯一一个在程序形成的时候就存在 ...
- MFC单文档程序架构解析
MFC单文档程序架构解析 MFC单文档程序架构解析 这里我以科院杨老师的单文档程序来分析一下MFC单文档的程序架构,纯属个人见解,不当之处烦请指教! 首先我们了解到的是 图(一) theApp 是唯一 ...
- MFC单文档程序添加HTML帮助支持
1.在App类 构造函数中添加 EnableHtmlHelp(); 2.在Frame类中,添加消息影射: ON_COMMAND(ID_HELP_FINDER, CFrameWnd::OnHelpFin ...
- MFC单文档视图中嵌入GLFW窗口
开始学习OpenGL由于有一段时间,但是glfw只有窗口区,虽然通过某种手段(移步这里)可以加入工具栏,但仍然无法作为一个标准的GUI,而直接在MFC或Qt里面使用OpenGL API感觉有诸多制肘, ...
- PyQt(Python+Qt)学习随笔:containers容器类部件QMdiArea多文档界面的QMdiSubWindow子窗口相关属性和操作方法
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 1.增加子窗口 QMdiArea中的子窗口类型是QMdiSubWind ...
- MFC学习(七) 单文档程序
1 MFC单文档程序的主要类 (1)文档类(Document) 即应用程序处理的数据对象,文档一般从 MFC 中 CDocument 中派生.CDocument 类用于相应数据文件的读取以及存储 Cv ...
- MFC单文档
一.创建并运行MFC单文档程序 1.创建单文档程序 这里使用的是VS2017.首先,打开VS2017,选择文件->新建->项目,然后选择Visual C++ -> MFC /ATL& ...
- 【VC编程技巧】窗口☞3.5对单文档或者多文档程序制作启动画面
(一)概要: 文章描写叙述了如何通过Visual C++ 2012或者Visual C++ .NET,为单文档或者多文档程序制作启动画面.在Microsoft Visual Studio 6.0中对于 ...
随机推荐
- Apache Cocoon XML注入 [CVE-2020-11991]
受影响版本: Apache Cocoon <= 2.1.x 程序使用了StreamGenerator这个方法时,解析从外部请求的xml数据包未做相关的限制,恶意用户就可以构造任意的xml表达式, ...
- size_t 、wchar_t和 ptrdiff_t
size_t在C语言中就有了. 它是一种"整型"类型,里面保存的是一个整数,就像int, long那样.这种整数用来记录一个大小(size).size_t的全称应该是size ty ...
- pugixml应用随笔
1. 修改元素值 second_node.set_value("miller");不对 必须second_node.first_child().set_value(" ...
- Java泛型学习--第一篇
还是那句话,学习某个知识一定要想想为什么要学它,这方面的知识用来解决什么问题的,怎么用,并且要总结的体系化,不能散的到处都是,方便以后查看博客. 今天参考廖雪峰老师官网学习并总结下泛型廖老师官网 1. ...
- 漫画 | CPU战争40年,真正的王者终于现身!
上个世纪70年代,内存又慢又贵, 程序员得想尽一切办法节省内存. 那个时代的编译器也比较差劲 所以,70年代的程序员几乎都写得一手好汇编. 为了帮助程序员写好汇编,这个时候的CPU也有意把指令集做了增 ...
- 2019 ICPC Asia Nanjing Regional
2019 ICPC Asia Nanjing Regional A - Hard Problem 计蒜客 - 42395 若 n = 10,可以先取:6,7,8,9,10.然后随便从1,2,3,4,5 ...
- 2017-2018 ACM-ICPC Latin American Regional Programming Contest PART (11/13)
$$2017-2018\ ACM-ICPC\ Latin\ American\ Regional\ Programming\ Contest$$ \(A.Arranging\ tiles\) \(B. ...
- 【noi 2.6_9289】Ant Counting 数蚂蚁{Usaco2005 Nov}(DP)
题意:有M个家族的蚂蚁,各Ni只(互相相同).问选出 l~r 只的不同方案数. 解法:很基础的一种DP,不要被"排列组合"所迷惑了啊~我之前接触过这个类型,可惜又忘了,一定要记住! ...
- 使用 Nginx 在 Linux 上托管 ASP.NET Core
server { listen 80; server_name example.com *.example.com; location / { proxy_pass http://localhost: ...
- kubernetes生态--交付prometheus监控及grafana炫酷dashboard到k8s集群
由于docker容器的特殊性,传统的zabbix无法对k8s集群内的docker状态进行监控,所以需要使用prometheus来进行监控: 什么是Prometheus? Prometheus是由Sou ...