MFC基本概念与知识

MFC基本概念与知识

1 MFC定义

  • 1.1

微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是微软公司提供的一个类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。

  • 1.2

MFC(Microsoft Foundation Classes)是微软基础类库的简称,是微软公司实现的一个c++类库,主要封装了大部分的windows API函数,vc++是微软公司开发的c/c++的集成开发环境,所谓集成开发环境,就是说利用它可以编辑,编译,调试,而不是使用多种工具轮换操作,灵活性较大。vc也指它的内部编译器,集成开发环境必须有一个编译器内核,例如DevC++其中一个编译器内核就是gcc。 MFC除了是一个类库以外,还是一个框架,在vc++里新建一个MFC的工程,开发环境会自动帮你产生许多文件,同时它使用了mfcxx.dll。xx是版本,它封装了mfc内核,所以你在你的代码看不到原本的SDK编程中的消息循环等等东西,因为MFC框架帮你封装好了,这样你就可以专心的考虑你程序的逻辑,而不是这些每次编程都要重复的东西,但是由于是通用框架,没有最好的针对性,当然也就丧失了一些灵活性和效率。但是MFC的封装很浅,所以效率上损失不大。
2 Windows消息机制
MFC/QT是一个广泛使用的变成类库,对windows的消息机制进行了很好的封装。

  • 2.1 消息的概念

消息是指windows操作系统发给应用程序的一个通告,告诉程序某个特定的事件发生了。比如用户点击鼠标,会引发相关的消息,并交给相应的程序去处理。最终处理消息的是应用程序的窗口函数,如果程序不负责处理的话,系统会作出默认的处理。
从数据结构的角度来说,消息是一个结构体,包含了消息的类型标识符以及其他的一些附加消息。
3 API的概念(Application Programming Interface)
API即“ \color{red}{应用程序编程接口} ”,是一些预先定义的函数,目的是作为“介面”沟通两个不同的东西,提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
其实就是别人已经写好的可以实现特定功能的函数,而你只需要根据他提供好的接口,也就是调用他的方法,传入他规定的参数,然后这个函数就会帮你实现这些功能。
Windows应用程序API函数是通过C语言实现的,所有主要的Windows函数都在Windows.h头文件中进行了声明。Windows操作系统提供了1000多种API函数。
4 SDK的概念(Software Development Kit)
SDK即“软体开发工具包”,一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。通俗点是指由第三方服务商提供的实现软件产品某项功能的工具包。
通常SDK是由专业性质的公司提供专业服务的集合,比如提供安卓开发工具、或者基于硬件开发的服务等。也有针对某项软件功能的SDK,如推送技术、图像识别技术、移动支付技术、语音识别分析技术等,在互联网开放的大趋势下,一些功能性的SDK已经被当作一个产品来运营。
5 窗口和句柄

  • 5.1

窗口是Windows应用程序中一个非常重要的元素,一个Windows应用程序至少要有一个窗口,称为主窗口。
窗口是屏幕上的一块矩形区域,是Windows应用程序与用户进行交互的接口。利用窗口可以接受用户的输入、以及显示输出。
一个应用程序窗口通常包括标题栏、菜单栏、系统菜单、最小化框、最大化框、可调边框有的还有滚动条。
窗口可以分为客户区和非客户区。客户区是窗口的一部分,应用程序通常在客户区中显示文字或者绘制图形。
标题栏、菜单栏、系统菜单、最小化框和最大化框、可调边框统称为窗口的非客户区,它们由Windows系统来管理,而应用程序则主要管理客户区的外观及操作。
窗口可以有一个父窗口,有父窗口的窗口成为子窗口。
除以上类型窗口外,对话框和消息框也是一种窗口,在对话框上通常还包含许多子窗口,这些子窗口的形式有按钮、单选钮、复选按钮、组框、文本编辑框等。
在Windows应用程序中,窗口是通过窗口句柄(HWND)来标识的。我们要对某个窗口进行操作,首先要得到这个窗口的句柄。

  • 5.2

    句柄(HANDLE)在Windows程序中,有各种这样的资源(窗口、图标、光标、画刷等),系统在创建这些资源时会为他们分配内存,并返回标识这些资源的标识号,即句柄。
    图标句柄(HICON)、光标句柄(HCURSOR),画刷句柄(HBRUSH)。
    6 消息与消息队列
    Windows程序设计是一种完全不同于传统的DOS方式的程序设计方法。它是一种事件驱动方式的程序设计模式,主要是基于消息的。
    7 WinMain函数
    当Windows操作系统启动一个程序时,它调用的就是该程序的winmain函数(实际上是由插入到可执行文件中的启动代码调用的)。
    WinMain函数是Windows程序的入口点函数,与DOS程序的入口点函数main的作用相同,当WinMain函数结束或返回时,Windows应用程序结束。

发布了4 篇原创文章 · 获赞 4 · 访问量 132

猜你喜欢

转载自blog.csdn.net/qq_43629083/article/details/104078376