首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210223A079S000?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券