MFC 应用程序:如何向单个文档应用程序添加一组控件?

Posted

技术标签:

【中文标题】MFC 应用程序:如何向单个文档应用程序添加一组控件?【英文标题】:MFC Applicaton: How to add a set of controls to an single document application? 【发布时间】:2017-02-23 03:16:31 【问题描述】:

这是我的第一个 MFC 应用程序,而且我对 Visual Studio 还很陌生,所以我无法确切了解我需要从什么开始。我已经阅读了许多论坛和 MSDN 文章,但我所看到的几乎都是如何在基于对话框的应用程序中使用控件或如何在 SDI 应用程序中绘制或加载文档。但我的任务似乎结合了这两种类型的功能,所以我什至无法决定是否选择正确的 MFCApp 类型。

这是我的任务的简化版本。 我必须使用 MFC 在 VS 2015 中编写一个应用程序,它必须:

对于文档应用程序有一个通用的主菜单; 有类似固定大小的窗格,其中包含 TextEdit 和 Button 控件以及一些能够显示图像的控件(在 事实 必须有更多不同的控件,但这并不重要 问题); 该区域的其余部分必须用于显示通过单击窗格上的按钮而修改的图像; 窗格上控件中显示的图像是从文件->打开对话框中选择的文件加载的; ButtonClick 事件中显示的图像取自窗格上的图像控件,并与 textEdit 中的文本混合 可以通过“文件”->“保存”对话框将更改后的图像保存到文件中。

这里是 the scheme of the task

问题:

    我了解基于对话框的应用程序允许添加控件 表格很容易,但在这种情况下我不明白如何处理 带有主菜单以及加载和保存文档。 我还找到了一个将窗格添加到 基于文档的应用程序的 MainFrm 但我找不到 向添加的窗格添加任何控件的方法。

也许有人可以告诉我应该选择哪种类型的 MFC 应用程序以及如何处理我在选择这种或那种类型时遇到的问题。谢谢!

【问题讨论】:

【参考方案1】:

当您需要工具栏和菜单或功能区时,您应该使用 SDI 应用程序。

您有一个视图区域,即您的工作图像/表面。 所有按钮控件和命令都位于工具栏和菜单或功能区中的表面上方。

作为替代方案,您可以选择带有表单视图的 SDI。在这种情况下,您有一个类似于对话框应用程序的应用程序,但同样具有菜单和工具栏或功能区。

视图可以进行更多控制,并且像对话框一样工作。

MDI 在某种程度上“过时”了。但仍有可能...今天的大多数应用程序都是 SDI 应用程序...

【讨论】:

谢谢!我还考虑过带有表单视图的 SDI 作为一种可能的方式,但我不知道它是否真的可以工作。所以我会尽量做到这一点。

以上是关于MFC 应用程序:如何向单个文档应用程序添加一组控件?的主要内容,如果未能解决你的问题,请参考以下文章

如何向所有连接的节点添加一列 - mnesia 表

如何在我的 iOS 应用程序中添加一项权利,以便在请求 Apple 之前快速测试它是不是有效

MySQL:如何在查询中向日期时间字段添加一天

Java如何向容器中添加一组元素详解(附源码)

我想向子表单添加一条新记录,但它总是向主表单添加一条新记录

如何在mfc中动态添加子菜单