5.4 回到案例场景
视频精讲:光盘\video\05\本关任务.swf
在Visual Studio 2008下,设计并制作能够模拟MFC机制(如动态创建)的应用程序,其运行结果如图5-5所示。
|
| 图5-5 模拟MFC动态创建机制 |
5.4.1 基本思路
在Win32控制台程序中模拟MFC动态创建机制的基本流程如下。
(1)编辑并实现MFC的动态创建机制。
定义CRuntimeClass结构。
给出DECLARE_DYNAMIC、DECLARE_DYNCREATE、IMPLEMENT_DYNAMIC及IMPLEMENT_DYNCREATE等宏的定义。
按照MFC中类的层次结构定义类,并为需要支持动态创建的类进行声明。
给出类中各成员函数的具体实现,并初始化类的CRuntimeClass对象。
(2)编辑并实现对动态创建机制的测试。
定义想要实现动态创建机制的类。
给出类中各成员函数的具体实现。
给出main()函数,实现对动态创建机制的测试。
具体的实现步骤如下。
(1)编辑并实现MFC的动态创建机制
在Win32工程中新建一个C++(www.cppentry.com)头文件MFC.h,在其中对CRuntimeClass对象的结构进行定义。
在MFC.h中给出用于声明动态创建的DECLARE_DYNAMIC()和DECLARE_DYNCREATE()宏的定义,以及用于给出动态创建实现的IMPLEMENT_DYNAMIC()及IMPLEMENT_ DYNCREATE()等宏的定义。
在MFC.h中,按照MFC的类层次结构给出各个类的定义,并分别使用DECLARE_DYNCREATE()宏和DECLARE_DYNAMIC()宏为需要支持动态创建的类及其他类进行声明。
在Win32工程中新建一个C++(www.cppentry.com)源文件MFC.cpp,在其中给出步骤3定义的各个类的成员函数的具体实现,并通过用IMPLEMENT_DYNCREATE()宏和IMPLEMET_DYNAMIC()宏初始化类的CRuntimeClass对象,实现对动态创建机制的支持。
(2)编辑并实现对动态创建机制的测试
为测试上述步骤中已编辑好的动态创建机制,需要在Win32工程中再新建一个C++(www.cppentry.com)头文件MyTest.h,并在该头文件中用DECLARE_DYNCREATE()宏定义想要实现动态创建机制的类。
在Win32工程中新建一个对应于MyTest.h的C++(www.cppentry.com)源文件MyTest.cpp,在该源文件中给出MyTest.h定义的各个类的成员函数的具体实现,并用IMPLEMENT_DYNCREATE()宏实现动态创建机制。
在MyTest.cpp中编写main()函数,实例化应用程序类及CRuntimeClass结构的指针对象,并根据在CRuntimeClass对象中保存的类的信息完成对动态创建机制的测试。
【责任编辑:
云霞 TEL:(010)68476606】