如题只知道是消息头,但是不知为什么?其运行机制是什么样子的?
在哪儿定义的?起什么作用?不要行吗?

解决方案 »

  1.   

    afx 原先是MS的一个开发小组
      

  2.   

    MFC的历史  开始,Microsoft建立了一个AFX小组,AFX代表Application Framework,即应用程序框架。据说创建该小组原意是为了发布一个Borland C++的OWL的竞争性产品,因为那时侯Borland 公司的应用程序框架OWL(object Windows Language)已经做的相当成功。AFX小组象OWL那样,提出了一个高度抽象Windows API的一个类库。  他们采用自顶向下的设计方法,逐步将对象抽象出来,并施加到Windows上。然后,他们试着花了几个月时间用这个类库来编写应用程序,结果发现这个类库偏离Windows API实在太远,过分抽象并没有太大的实用性,相反大大降低了应用程序的效率。 于是,他们干脆放弃了整个AFX类库,对类库进行重新设计。这次,他们采用了自底向上的方法,从已有的Windows API着手,将类建立在Windows API对象基础上,设计出后来成为MFC1.0的一个类库。但是,你现在仍然可以看到AFX时期的痕迹,许多源程序文件有afx前缀,如afxabort.cpp,afxmem.cpp。MFC延用了许多AFX类库的宏,因此我们经常会看到以AFX开头的宏。   AFX小组实际上做了两件工作:MFC类库和对MFC的IDE支持(即资源编译器和操作向导)。在1994年4月份之后,AFX的名字停止使用,该小组成员成为Visual C++开发组的一部分,即现在的MFC小组。
       MFC1.0版于1992年同Microsoft C/C++7.0同时发布。它提供了对Windows API简单的抽象和封装,还没有我们现在常用的文档/视结构特性。但它引入了CObject,通过CArchive的持续化和其他一些MFC中仍然使用的特性,从而奠定了MFC的基础。