刚学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将记录这些学习过程,用小白的话语解释给大家。
代码之路苦作舟的童鞋们,学海无涯,我学到了,你呢?如果能帮到你,记得点赞哦~
领取专属 10元无门槛券
私享最新 技术干货