Windows 学习MFC编程的先决条件 我知道一些C++和C,现在我正在做的项目是大量的MFC编程。有经验的人能告诉我学习MFC的先决条件吗

Windows 学习MFC编程的先决条件 我知道一些C++和C,现在我正在做的项目是大量的MFC编程。有经验的人能告诉我学习MFC的先决条件吗,windows,mfc,Windows,Mfc,还有,最好的学习来源是什么 有什么特别的书或视频系列吗 我知道这个问题太笼统了,但答案可能会对我(或任何深入研究MFC的人)有很大帮助 谢谢 MFC是用C++实现的。虽然它早于官方的C++标准,但在那里你不会发现太多的冒险。几乎没有模板代码,当然也没有什么新的C++11特性。与基本C++概念的亲密关系会给你带来很大的帮助。 如前所述,MFC在很大程度上是围绕Windows API的资源管理包装器。Windows API资源和MFC对象(如:,或:)之间通常存在直接映射。如果您了解构造函数、析

还有,最好的学习来源是什么

有什么特别的书或视频系列吗

我知道这个问题太笼统了,但答案可能会对我(或任何深入研究MFC的人)有很大帮助


谢谢 要了解Windows的工作原理,“Petzold”就是这本书。(查尔斯·佩佐尔德的Windows编程)。

+1问得好

:按顺序学习Win32

到目前为止,MFC最重要的先决条件是对(有时也称为Win32 API)有扎实的理解。您还需要熟悉C++的几个关键概念并熟悉这些工具。我提议的先决条件清单是:

  • 获得Windows API开发的坚实背景
  • 熟悉C++相关概念。
  • 学习工具
  • 以下是这些步骤的概要,并附有指向其他信息的链接

    1。Windows API:

    Windows API通过C接口公开所有服务。因此,资源管理通常是乏味的锅炉板代码。并且在源代码中可见(有时在阅读代码时是一个难以置信的奖励)。MFC在很大程度上是一个围绕Windows API的自动化资源管理包装器(和实用程序库),隐藏了大部分资源管理和类型转换。要流利地使用MFC,您必须了解它隐藏了什么

    要开始使用Windows API,您所需要的只是一个我推荐的主要组件的快速概述(由fame提供)。它包括消息处理、窗口、控件和GDI,并建立了坚实的基础。如果您想投入(花得很好)时间来更详细地研究Windows API,那么迄今为止最好的资源可能仍然是Charles Petzold的(而不是与之混淆的)。MSDN也是一个很好的资源,可以获得特定领域的概述和详细文档,如:

    2。主要C++概念:< /强>

    MFC是用C++实现的。虽然它早于官方的C++标准,但在那里你不会发现太多的冒险。几乎没有模板代码,当然也没有什么新的C++11特性。与基本C++概念的亲密关系会给你带来很大的帮助。 如前所述,MFC在很大程度上是围绕Windows API的资源管理包装器。Windows API资源和MFC对象(如:,或:)之间通常存在直接映射。如果您了解构造函数、析构函数和对象生存期,那么您在该部门几乎已经准备好了

    当使用MFC的基于模板的容器(如)时,您自然会接触到模板。这里没有太多涉及,只是非常基本的类型参数化,以重用容器代码并启用类型安全元素访问。可以在此处找到MFC容器的介绍:

    在MFC中很少使用异常,主要是在访问文件或序列化数据时。您仍然应该知道如何编写异常安全代码;您将在非平凡的应用程序中看到异常。有关概述,请访问

    一个不是C++的真正部分,但在MFC中广泛使用的是预处理器。无论您的MFC应用程序多么微不足道,都会有宏。您必须很好地理解预处理器语法以及预处理器的操作方式

    3。工具:

    虽然可以单独使用记事本编写MFC应用程序,但这样做肯定不是很有效。纯文本编辑器可能是学习平台的一个好主意,但当需要满足里程碑和最后期限时,您肯定会希望使用功能强大的IDE

    MFC在很大程度上意味着使用VisualStudio,我假设您正在使用它。如果您使用的是VS6或VS2010(或更高版本),则可以访问。这是您将经常使用的工具。为了安全地操作它,您必须熟悉它为您生成的代码。使用它,检查生成的代码,并尝试构建它的心智模型。如果这还没有意义,你应该稍后再回来

    MFC类向导几乎肯定会生成预处理器代码。它隐藏了大量的复杂性,您需要了解这些复杂性才能安全使用。使用IDE浏览预处理器宏,尝试在脑海中展开它们,看看是否理解生成的代码。如果您在取消混合宏调用时遇到困难,请让编译器使用编译器选项为您输出预处理的代码

    有时您必须查看或调试MFC源代码。要使源代码可供源代码浏览和调试器使用,您必须设置VC++目录以包括以下内容(如果尚未存在):

    根据IDE的不同,这可以通过工具->选项:项目和解决方案->VC++目录或项目设置的属性页来完成

    查找帮助:虽然MSDN是最好的文档资源,但MFC部分感觉它处于维护模式,不像Windows API文档那样受到重视。如果发现缺少MFC文档,请查找相应的Windows API文档,例如vs。后者包含有关windows接收此消息的顺序的重要信息

    学习MF
    $(VCInstallDir)atlmfc\src\mfc
    $(VCInstallDir)atlmfc\src\mfcm
    $(VCInstallDir)atlmfc\src\atl