MFC將windows消息系統(tǒng)進(jìn)行了高度的抽象和封裝,其根本原理是運(yùn)用C++的高級特性并結(jié)合一定的設(shè)計模式(如工廠模式,模板方法等)來實現(xiàn)的。一般的windows消息(WM_XXX),則一定是由派生類流向基類,沒有旁流的可能。如果是命令消息(WM_COMMAND),那就有比較奇特的路線了。下面就針對多文檔/單文檔(Document-View)、對話框兩種應(yīng)用程序比較討論WM_COMMAND消息的傳遞處理過程。討論前首先得明確命令消息的來源,命令消息一般是用戶選擇某個菜單項,或一個加速鍵被翻譯,或一個子控件發(fā)送一個通知消息給它的父窗口時產(chǎn)生的。對一個菜單而言,消息接收者是Frame窗口或擁有它的對話框;對一個工具欄而言,消息接收者是它的父窗口。兩種應(yīng)用程序命令消息處理流程如下圖所示。