八宝书库 > 文学其他电子书 > 深入浅出MFC第2版(PDF格式) >

第35部分

深入浅出MFC第2版(PDF格式)-第35部分

小说: 深入浅出MFC第2版(PDF格式) 字数: 每页4000字

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!



                  { 

                    。。。 // 其实在MFC 应用程序中这里也有DECLARE_DYNCREATE(),见下节。 

                  }; 



                  范例程序Frame3 在。cpp 档中有这些动作: 



                  IMPLEMENT_DYNAMIC(CCmdTarget; CObject) 



                  IMPLEMENT_DYNAMIC(CWinThread; CCmdTarget) 



                  IMPLEMENT_DYNAMIC(CWinApp; CWinThread) 



                  IMPLEMENT_DYNAMIC(CWnd; CCmdTarget) // 其实在MFC 中它是IMPLEMENT_DYNCREATE(),见下节。 



                  IMPLEMENT_DYNAMIC(CFrameWnd; CWnd) // 其实在MFC 中它是IMPLEMENT_DYNCREATE(),见下节。 



                  IMPLEMENT_DYNAMIC(CDocument; CCmdTarget) 



                  IMPLEMENT_DYNAMIC(CView; CWnd) 



                  于是组织出图3…1 这样一个大网。 



130 


…………………………………………………………Page 193……………………………………………………………

                                                            第3章    MFC 六大關鍵技術之模擬 



       CObject::classCObject    CCmdTarget::classCCmdTarget      CWinThread::classCWinThread 



            “CObject”                    “CCmdTarget”                  “CWinThread” 



          m_pBaseClass                   m_pBaseClass                  m_pBaseClass 

          m_pNextClass                   m_pNextClass                  m_pNextClass 



                         NULL 

   NULL 



     CFrameWnd::classCFrameWnd        CWnd::classCWnd              CWinApp::classCWinApp 



          “CFrameWnd”                       “CWnd”                       “CWinApp” 



          m_pBaseClass                   m_pBaseClass                  m_pBaseClass 

          m_pNextClass                   m_pNextClass                  m_pNextClass 



       CDocument::classCDocument      CView::classCView 



           “CDocument”                     “CView” 



                                                                     (static 变量) 



                                                                     CRuntimeClass::pFirstClass 



          m_pBaseClass                   m_pBaseClass 

          m_pNextClass                   m_pNextClass 



    图3…1 CRuntimeClass 对象构成的类别型录网。本图只列出与RTTI 有关系 



           的成员。 



为了实证整个类别型录网的存在,我在main  函数中调用PrintAllClasses ,把串行中的每 



一个元素的类别名称、对象大小、以及schema no。 印出来: 



  void PrintAllClasses() 

  { 

      CRuntimeClass* pClass; 



      // just walk through the simple list of registered classes 

      for (pClass = CRuntimeClass::pFirstClass; pClass != NULL; 

              pClass = pClass…》m_pNextClass) 

      { 

          cout m_lpszClassName 

返回目录 上一页 下一页 回到顶部 0 0

你可能喜欢的