天天看點

MFC 執行順序總結

源代碼:

  1. CMyTest1App();//首先執行構造函數
  2. virtual BOOL InitInstance();//第二步執行初始化函數
  3. CMyTest1Dlg dlg;//執行 CMyTest1Dlg 的構造函數

    // CMyTest1Dlg 消息處理程式

    //zy 當CDiaog子類調用DoModal()函數時,就會觸發一系列函數調用,最終調用OnInitDialog()

    //zy MFC中, OnInitDialog()函數(對話框初始化),可以把它了解為開始建構對話框的函數

    m_pMainWnd = &dlg;

    INT_PTR nResponse = dlg.DoModal();//zy 執行 OnInitDialog

  4. BOOL CMyTest1Dlg::OnInitDialog()//CMyTest1Dl 消息處理程式

    //zy 當CDiaog子類調用DoModal()函數時,就會觸發一系列函數調用,最終調用OnInitDialog()

    //zy MFC中, OnInitDialog()函數(對話框初始化),可以把它了解為開始建構對話框的函數

  5. void CMyTest1Dlg::OnPaint()//zy 這是視窗的重繪回調
  6. void CMyTest1Dlg::OnSysCommand(UINT nID, LPARAM lParam)

    //zy 系統響應函數

    ->其他系統自動生成的函數和變量

    //zy 架構調用此函數來改寫與确認對話框資料

    1.virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支援,

  7. m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);//zy HICON 是微軟平台下的圖示句柄。
  8. //zy MFC的消息映射

    BEGIN_MESSAGE_MAP(CMyTest1Dlg, CDialogEx)

    ON_WM_SYSCOMMAND()

    ON_WM_PAINT()

    ON_WM_QUERYDRAGICON()

    ON_BN_CLICKED(IDC_BUTTON1, &CMyTest1Dlg::OnBnClickedButton1)

    ON_BN_CLICKED(IDOK, &CMyTest1Dlg::OnBnClickedOk)

    ON_BN_CLICKED(IDCANCEL, &CMyTest1Dlg::OnBnClickedCancel)

    END_MESSAGE_MAP()

    ->使用者UI界面中生成的指令 以按鈕舉例:

    MFC 執行順序總結
    MFC 執行順序總結