刚学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将记录这些学习过程,用小白的话语解释给大家。

 

代码之路苦作舟的童鞋们,学海无涯,我学到了,你呢?如果能帮到你,记得点赞哦~

分类:

C++

技术点: