设为首页 加入收藏

TOP

5.4.2 代码演练(1)
2013-10-07 00:45:19 来源: 作者: 【 】 浏览:57
Tags:5.4.2 代码 演练

5.4.2  代码演练(1)

下面将给出实现本关任务的关键代码。

(1)MFC.h中,按照类的层次结构定义类的关键代码:

【程序5 1】光盘\code\05\AimedWork\AimedWork.sln

01 class CObject        //声明CObject类
02 {
03 public:
04   CObject::CObject()  {}
05   CObject::~CObject() {}
06   virtual CRuntimeClass* GetRuntimeClass() const;
07   BOOL IsKindOf(const CRuntimeClass* pClass) const;
08 public:
09   static CRuntimeClass classCObject;    //定义CRuntimeClass结构的变量
10   virtual void Dynamic() { cout << "CObject has been created!\n"; }
11 };
12 class CCmdTarget : public CObject   //声明CCmdTarget类
13 {
14   DECLARE_DYNAMIC(CCmdTarget)     //支持运行时类型识别
15 public:
16   CCmdTarget::CCmdTarget()  {}
17   CCmdTarget::~CCmdTarget() {}
18 };
19 class CWinThread : public CCmdTarget   //声明CWinThread类
20 {
21   DECLARE_DYNAMIC(CWinThread)     //支持运行时类型识别
22 public:
23   CWinThread::CWinThread()  {}
24   CWinThread::~CWinThread() {}
25   virtual BOOL InitInstance() {return TRUE;}
26 };
27 class CWnd;
28 class CWinApp : public CWinThread   //声明CWinApp类
29 {
30   DECLARE_DYNAMIC(CWinApp)     //支持运行时类型识别
31 public:
32   CWinApp* m_pCurrentWinApp;
33   CWnd* m_pMainWnd;
34 public:
35   CWinApp::CWinApp()  {m_pCurrentWinApp = this;}
36   CWinApp::~CWinApp() {}
37   virtual BOOL InitInstance()  {return TRUE;}
38 };
39 class CDocument : public CCmdTarget   //声明CDocument类
40 {
41   DECLARE_DYNAMIC(CDocument)     //支持运行时类型识别
42 public:
43   CDocument::CDocument()  {}
44   CDocument::~CDocument()  {}
45 };
46 class CWnd : public CCmdTarget    //声明CWnd类
47 {
48   DECLARE_DYNCREATE(CWnd)     //支持动态创建
49 public:
50   CWnd::CWnd()  {cout << "CWnd Constructor be called!\n";}
51   CWnd::~CWnd()  {}
52   virtual BOOL Create();
53   BOOL CreateEx();
54   virtual BOOL PreCreateWindow();
55   void Dynamic() { cout << "CWnd has been created!\n"; }
56 };
57 class CFrameWnd : public CWnd    //声明CFrameWnd类
58 {
59   DECLARE_DYNCREATE(CFrameWnd)     //支持动态创建
60 public:
61   CFrameWnd::CFrameWnd()  {cout << "CFrameWnd Constructor be called!\n";}
62   CFrameWnd::~CFrameWnd()  {}
63   BOOL Create();
64   virtual BOOL PreCreateWindow();
65   void Dynamic() { cout << "CFrameWnd has been created!\n"; }
66 };
67 class CView : public CWnd    //声明CView类
68 {
69   DECLARE_DYNAMIC(CView)      //支持运行时类型识别
70 public:
71   CView::CView()  {cout << "CView Constructor be called!\n";}
72   CView::~CView()  {}
73 };

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇5.4.2 代码演练(2) 下一篇11.2.2 C语言标准库(2)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: