2024年4月2日发(作者:)
1
以下所有程序的类阶层架构、类名称、变量名称、结构名称、函数名称、函数行为,都以MFC
为仿真对象,具体而微。也可以说,我从数以万行计的MFC原始代码中,「偷」了一些出来,砍掉旁
枝末节,只露出重点。
在文件的安排上,我把模拟MFC的类都集中在MFC.H 和中,把自己派生的类集中在
MY.H 和 中。对于自定类,我的命名方式是在父类的名称前面加一个 "My",例如派生自
CWinApp 者,名为CMyWinApp,派生自 CDocument者,名为 CMyDoc。
MFC 类阶层
首先我以一个极简单的程序 Frame1,把 MFC 数个最重要类的阶层关系模拟出来:
这个实例仿真MFC的类阶层。后续数节中,我会继续在这个类阶层上开发新的能力。在这些名
为Frame? 的各范例中,我以 MFC 原始代码为蓝本,尽量模拟 MFC 的内部行为,并且使用完全相
同的类名称、函数名称、变量名称。这样的模拟对于我们在第三篇以及第四篇中深入探讨 MFC 时将
有莫大帮助。相信我,这是真的。
2
Frame1 范例程序
MFC.H
#0001 #include
#0003
#0004
#0005
#0006
#0007
#0008
#0010
#0011
#0012
#0013
#0014
class CObject
{
public:
CObject::CObject() { cout << "CObject Constructor n"; }
CObject::~CObject() { cout << "CObject Destructor n"; }
};
class CCmdTarget : public CObject
{
public:
CCmdTarget::CCmdTarget(){cout << "CCmdTarget Constructor n"; }
CCmdTarget::~CCmdTarget(){cout << "CCmdTarget Destructorn";}


发布评论