- 如今直接給出MFC程序執行順序,但着重分析其運行機制和功能分析,其流程是「theApp全局對象定義->TestApp構造函數->WinMain函數」。在執行theApp對象的構造函數以前先執行CWinApp基類的構造函數,從而把咱們本身建立的類和MFC類相關聯起來了。

- 文檔應用程序中,都有五個類,部分類名和工程名相關聯。在MFC程序有且僅有一個從應用程序類(CWinApp)派生的類,並且僅有一個該派生類的實例化對象

每一個窗口會有一個稱爲窗口過程的回調函數(WndProc),它帶有四個參數,分別爲:窗口句柄(Window Handle), 消息ID(Message ID), 和兩個消息參數(wParam, lParam), 當窗口收到消息時系統就會調用此窗口過程來處理消息。(因此叫回調函數)html
注意: postMessage發送的消息是隊列消息,它會把消息Post到消息隊列中; SendMessage發送的消息是非隊列消息, 被直接送到窗口過程處理函數
- PostMessage:把消息放到指定窗口所在的線程消息隊列中後當即返回。 PostThreadMessage:把消息放到指定線程的消息隊列中後當即返回。
- SendMessage:直接把消息送到窗口過程處理, 處理完了才返回。
- PeekMessage會當即返回 能夠保留消息
- GetMessage在有消息時返回 會刪除消息
- TranslateMessage: 把一個virtual-key消息轉化成字符消息(character message),並放到當前線程的消息隊列中,消息循環下一次取出處理。
- TranslateAccelerator: 將快捷鍵對應到相應的菜單命令。它會把WM_KEYDOWN 或 WM_SYSKEYDOWN轉化成快捷鍵表中相應的WM_COMMAND 或WM_SYSCOMMAND消息, 而後把轉化後的 WM_COMMAND或WM_SYSCOMMAND直接發送到窗口過程處理, 處理完後纔會返回。
- 首先須要聲明消息 #define WM_MESSAGE 0x200
- 聲明消息響應函數 在文件中的說明
- 實現消息響應函數
- 消息映射到消息處理函數
本文參考自下面幾篇文章post
https://blog.csdn.net/huangguangzhi88/article/details/85368700spa
https://blog.csdn.net/csdn_222/article/details/79404507.net
http://www.javashuo.com/article/p-tahcdjuz-kk.html線程