【发布时间】:2009-03-19 02:14:21
【问题描述】:
我对 MFC 并不陌生,但我想问问这个论坛上的专家,为什么会选择一个项目而不是另一个项目。我希望这不是一个愚蠢的问题,因为我对 MFC 比较陌生。
非常感谢
【问题讨论】:
标签: c++ visual-studio mfc
我对 MFC 并不陌生,但我想问问这个论坛上的专家,为什么会选择一个项目而不是另一个项目。我希望这不是一个愚蠢的问题,因为我对 MFC 比较陌生。
非常感谢
【问题讨论】:
标签: c++ visual-studio mfc
根据您的应用最适合的模板进行选择:
单文档接口 (SDI) - 如果您的应用程序一次只需要使用 1 个文档或数据对象或数据集
示例:notepad.exe
多文档接口 (MDI) - 如果您的应用程序需要一次处理多个文档或数据对象或数据集
示例:Visual Studio
基于对话框 - 用于其他任何事情。
示例:计算器
无论您选择什么,最终您仍然可以使用相同的功能,并且您可以以任何方式对其进行自定义。所以你不会把自己限制在你开始的任何事情上。
所有变体都带有 CWinApp,它是派生 MFC 应用程序的基类。
对于基于对话框的应用程序,您也可以从CDialog 开始。对于 SDI 应用程序,您也可以从 CMainFrame、CDocument 和 CView 开始。
【讨论】:
如果您选择一个 SDI 项目,您将获得一个完整的模型-视图-控制器框架。 你会得到一个文档类(继承自 CDocument),它理想地应该包含所有数据,以及一个视图类(继承自 CView)来处理显示。 您将获得一个已附加菜单的托管框架,并且您可以覆盖一些功能以保存和加载到文件。
如果您有一个基于对话框的应用程序,那么您将获得一个对话框。而已。当然,这个对话框可以衍生出其他对话框,但应用程序本质上是由一个对话框组成的。
如果您正在开发一个只执行一项任务的小型应用程序,那么对话框应用程序是合适的,因为您不需要开销。
如果您正在开发用户将加载、编辑和保存数据的应用程序,那么 SDI 路径会更合适。
在回答了您的问题后,我会礼貌地询问您选择 MFC 而不是 Windows 窗体的原因是否令人信服。我相信 MFC 在当时是一项出色的技术,但 Visual Studio 套件提供了更高级的工具(如果您准备走 .NET 路径)。
【讨论】:
如果“文档”是您应用程序的正确比喻,请使用 SDI 或 MDI。 (一次只能打开一个文档,如果多于一个,则可以打开多个文档。)仔细想想,文档隐喻确实不适用于大多数应用程序。
【讨论】: