请教在MFC的头文件中为什么可以不包含头文件而使用MFC中的类库呢

请问在MFC的头文件中为什么可以不包含头文件而使用MFC中的类库呢?
请问在MFC的头文件中为什么可以不包含头文件而使用MFC中的类库呢?
例如:
在a.h中可以加入语句CButton   m_bt;   CButton是MFC类库中的类,但是在该头文件可以什么头文件都不包含就可以直接使用。C++中这样做是绝对不行的。请问MFC里面是怎么实现的啊?

------解决方案--------------------
预编译头文件 stdafx.h
------解决方案--------------------

在 MFC 工程文件夹中都有 StdAfx.h 这个文件,其中有以下内容:

#include <afxwin.h> // MFC core and standard components
#include <afxext.h> // MFC extensions
#include <afxdisp.h> // MFC Automation classes
#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> // MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT

#include <afxsock.h> // MFC socket extensions

而且,你的主类头文件中包含了这个文件。
------解决方案--------------------
如果每个类中用类库中的函数都要手动包含.....
那MFC做的也太傻了吧
------解决方案--------------------
是的,就是这个样子的