MFC第二天——基類2及程序初始化

MFC這些核心基類中實現的功能都是精華啊~,多琢磨

1 CWinThread
  封裝了對線程的相關操作,關於線程會在以後文章中詳細說明。
  常用:
  m_pMainWnd 保存指向應用程序的主窗口的指針
  虛函數InitInstance——創建實例,應用程序重載這個虛函數,進行系統設置,創建運行環境(如主窗口)
  虛函數Run——提供UI線程的消息循環,接收、分發消息,但Run很少被重載
  虛函數ExitInstance——退出消息循環時執行,做最後的清理工作,可以重載爲線程做相關的清理工作
2 CWinApp
  CWinApp對象是一個應用程序實例,該類提供了初始化和運行應用程序實例的相關成員函數
  每個MFC應用程序只能包含一個app實例,這個app實例是全局的,它和其他C++全局變量一起產生,且在WinMain函數執行之前。
  對於自己特定的應用程序,你需要重載InitInstance函數
  MFC提供了以下全局函數,用於訪問你的app實例和其他全局信息:
  --AfxGetApp 獲得指向CWinApp對象的指針。  
  --AfxGetInstanceHandle 獲得當前應用程序實例的句柄。  
  --AfxGetResourceHandle 獲得應用程序資源的句柄。  

  --AfxGetAppName 獲得一個字符串指針,其中包含了應用程序的名字。


關於MFC程序的初始化過程

——>(理解一)

SDI程序CMyApp

   1 定義全局對象theApp   (會調用父類CWinApp的構造函數)

    2 進入WinMain (AfxGetApp獲取子類指針pApp)

    3 pApp->InitApplication(); (調用父類CWinApp::InitApplication)

    4 pApp->InitInstance(); 

       (調用子類CMyApp::InitInstance----->引發CMyFrameWnd::CMyFrameWnd----->

        引發CFrameWnd::Create-----> 引發CWnd::CreateEx----->引發CFrameWnd::PreCreateWindow)

    5 m_pMainWnd->ShowWindow();   // 顯示窗口

    6 m_pMainWnd->UpdateWindow();  //更新窗口

    7pApp->Run();   //開始消息處理

推薦文章:

MFC程序生死  http://www.moon-soft.com/doc/6474.htm  簡述的啊~

MFC程序的來龍去脈  http://hi.baidu.com/quanhaili/blog/item/221459323635c74bac4b5f39.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章