1.模态对话框与非模态对话框
Windows的对话框按照其与父窗口的关系可以分为model(模式)对话框和modeless(非模式)对话框。Modeless对话框的特点是父窗口与对话框共同运行,model对话框是令其父窗口无效,直到对话框结束运行之后,才将父窗口恢复为有效。
2.动态链接库
动态链接库(DynamicLink Library,缩写为DLL)是一个可以被其它应用程序共享的程序模块,其中封装了一些可以被共享的例程和资源。
动态链接是相对于静态链接而言的。所谓静态链接是指把要调用的函数或者过程链接到可执行文件中,成为可执行文件的一部分。函数和过程的代码就在程序的exe文件中,该文件包含了运行时所需的全部代码。当多个程序都调用相同函数时,内存中就会存在这个函数的多个拷贝,这样就浪费了宝贵的内存资源。而动态链接所调用的函数代码并没有被拷贝到应用程序的可执行文件中去,而是仅仅在其中加入了所调用函数的描述信息(往往是一些重定位信息)。仅当应用程序被装入内存开始运行时,在Windows的管理下,才在应用程序与相应的DLL之间建立链接关系。
动态链接库具有以下优点:
(1)扩展了应用程序的特性;
(2)可以用许多种编程语言来编写;
(3)简化了软件项目的管理;
(4)有助于节省内存;
(5)有助于资源共享;
(5)有助于应用程序的本地化;
(7)有助于解决平台差异;
(8)可以用于一些特殊的目的。windows使得某些特性只能为DLL所用。
3.消息映射
消息映射机制包括一组宏、映射成员函数等。声明消息映射数据结构之后,还需要为这个数据结构填入消息映射的数据。
MFC使用一种消息映射机制来处理消息,在应用程序框架中的表现就是一个消息与消息处理函数一一对应的消息映射表,以及消息处理函数的声明和实现等代码。当窗口接收到消息时,会到消息映射表中查找该消息对应的消息处理函数,然后由消息处理函数进行相应的处理。SDK编程时需要在窗口过程中一一判断消息值进行相应的处理,相比之下MFC的消息映射机制