MFC程序映射库
当提及 OnLButtonDown 成员早先例子的应用程序的功能的时候。你可能认为 OnLButtonDown 是一个虚拟功能的候选项。窗口的基础类别会为鼠标事件信息和其他的标准信息定义虚拟的功能, 而且源自窗口类别可以盖过旧时的功能。 一些 Windows 类别程序库也都是这样工作的。
MFC 程序库的应用程序框架不使用虚拟功能作为 Windows 的信息库。相反的,它使用对 " 映像 " 的聚集指定了信息源自类别成员函数的功能。为什么虚拟功能会拒绝请求呢? 假如 MFC 对于信息的要求是使用过的虚拟功能。CWnd 类别会为超过 100个信息宣布虚拟的功能。 C++需要为每个被源程序用于调度一个程序的类别和一个虚拟的功能表, 呼叫 vtable。每一个 vtable 为每个虚拟功能所需要的一组 4位元组建立一个项目,不管功能是否健全,实际上在被源程序类别中被清除。 因此,对于每个清楚的类型窗囗或控制窗口,应用程序会需要一个有超过 400个位元组支援虚拟的信息操作者的信息表。
信息操作者怎么样对于指定命令来控制已有的信息和相关的信息操作? 由于每个应用程序可能有一组不同的规划指令和命令按钮,所以当虚拟功能在一个窗口基础类别中运行的时候,你无法定义这些。MFC 程序库信息映像系统避免大量使用 vtables,因为它适用于应用程序特种命令和平常的 Windows 信息的平行信息。信息科技允许挑选非窗口类别, 比如文件类别和应用程序类别, 以处理指令信息。MFC 使用固定的语句连结 Windows 信息到 C++ 成员函数。对于C++没有扩充语言系统是必需的。
一个 MFC 信息处理程序需要一个功能原型,一个功能本文 , 和信息映像的一个项目 (语句启用)。 ClassWizard 帮助你把信息操作程序加入你的类。你选择一个来自列表方格的 Windows 信息身份证,并且程序将产生正确的功能参数和返回数值。