- 相關(guān)推薦
MFC中消息映射機(jī)制分析
摘 要:MFC以層次結(jié)構(gòu)組織起來,比較龐雜,尤其是它的消息映射機(jī)制,更是涉及到很多底層的東西。本文通過對(duì)整個(gè)消息映射機(jī)制進(jìn)行系統(tǒng)的分析,可以幫助程序開發(fā)人員更好地了解MFC,進(jìn)行可視化編程。
關(guān)鍵詞:消息驅(qū)動(dòng);消息映射;MFC 程序設(shè)計(jì)
1 引言
微軟公司提供的MFC基本類庫(Microsoft Foundation Classes),是進(jìn)行可視化編程時(shí)使用最為流行的一個(gè)類庫。MFC封裝了大部分Windows API函數(shù)和Windows控件,使得程序的開發(fā)變得簡(jiǎn)單,極大的縮短了程序的開發(fā)周期。MFC獨(dú)創(chuàng)的Document/View框架結(jié)構(gòu),能夠?qū)⒐芾頂?shù)據(jù)的代碼和顯示數(shù)據(jù)的程序代碼分開,并且設(shè)計(jì)了一套方便的消息映射和命令傳遞機(jī)制,方便程序員的開發(fā)使用。其中消息映射機(jī)制本身比較龐大和復(fù)雜,對(duì)它的分析和了解無疑有助于我們寫出更為合理的高效的程序。這里我們分析一下MFC的消息映射機(jī)制,以了解MFC是如何對(duì)Windows的消息加以封裝,方便用戶的開發(fā)。
2 SDK下的消息機(jī)制實(shí)現(xiàn)
首先,簡(jiǎn)單回顧一下SDK下我們是如何進(jìn)行Windows的程序開發(fā)的。Windows程序的運(yùn)行是依靠外部發(fā)生的事件來驅(qū)動(dòng)的,事件由操作系統(tǒng)捕捉,以消息的形式進(jìn)入消息隊(duì)列,然后通過消息循環(huán)從隊(duì)列中不斷取出消息,送到對(duì)應(yīng)的窗口過程里處理。相對(duì)于DOS程序,Windows是以WinMain作為程序的入口點(diǎn),以下就是一個(gè)簡(jiǎn)化的Win32程序的主體,通過while語句實(shí)現(xiàn)消息循環(huán):
WinMain(…)
{
MSG msg;
RegisterClass(…); // 注冊(cè)窗口類
CreateWindow(…); // 創(chuàng)建窗口
ShowWindow(…); // 顯示窗口
UpdateWindow(…);
While(GetMessage(
【MFC中消息映射機(jī)制分析】相關(guān)文章:
TinyOS消息通訊機(jī)制以及TOSBase無線-串口通訊組件分析03-07
基于OPNET的IEEE 802.11e協(xié)議中HCF機(jī)制仿真與分析03-30
RPR與SDH保護(hù)機(jī)制的對(duì)比分析03-20
城市發(fā)展的環(huán)境效應(yīng)機(jī)制分析03-24
人臉的檢測(cè)定位MFC+VC++03-08
公共政策的集體選擇機(jī)制分析03-21