- 相關(guān)推薦
MFC中消息映射機(jī)制分析
摘 要:MFC以層次結(jié)構(gòu)組織起來,比較龐雜,尤其是它的消息映射機(jī)制,更是涉及到很多底層的東西。本文通過對整個(gè)消息映射機(jī)制進(jìn)行系統(tǒng)的分析,可以幫助程序開發(fā)人員更好地了解MFC,進(jìn)行可視化編程。
關(guān)鍵詞:消息驅(qū)動;消息映射;MFC 程序設(shè)計(jì)
1 引言
微軟公司提供的MFC基本類庫(Microsoft Foundation Classes),是進(jìn)行可視化編程時(shí)使用最為流行的一個(gè)類庫。MFC封裝了大部分Windows API函數(shù)和Windows控件,使得程序的開發(fā)變得簡單,極大的縮短了程序的開發(fā)周期。MFC獨(dú)創(chuàng)的Document/View框架結(jié)構(gòu),能夠?qū)⒐芾頂?shù)據(jù)的代碼和顯示數(shù)據(jù)的程序代碼分開,并且設(shè)計(jì)了一套方便的消息映射和命令傳遞機(jī)制,方便程序員的開發(fā)使用。其中消息映射機(jī)制本身比較龐大和復(fù)雜,對它的分析和了解無疑有助于我們寫出更為合理的高效的程序。這里我們分析一下MFC的消息映射機(jī)制,以了解MFC是如何對Windows的消息加以封裝,方便用戶的開發(fā)。
2 SDK下的消息機(jī)制實(shí)現(xiàn)
首先,簡單回顧一下SDK下我們是如何進(jìn)行Windows的程序開發(fā)的。Windows程序的運(yùn)行是依靠外部發(fā)生的事件來驅(qū)動的,事件由操作系統(tǒng)捕捉,以消息的形式進(jìn)入消息隊(duì)列,然后通過消息循環(huán)從隊(duì)列中不斷取出消息,送到對應(yīng)的窗口過程里處理。相對于DOS程序,Windows是以WinMain作為程序的入口點(diǎn),以下就是一個(gè)簡化的Win32程序的主體,通過while語句實(shí)現(xiàn)消息循環(huán):
WinMain(…)
{
MSG msg;
RegisterClass(…); // 注冊窗口類
CreateWindow(…); // 創(chuàng)建窗口
ShowWindow(…); // 顯示窗口
UpdateWindow(…);
While(GetMessage(
【MFC中消息映射機(jī)制分析】相關(guān)文章:
3GPP AMR Codec中丟幀隱藏機(jī)制的改進(jìn)06-17
商標(biāo)翻譯中的文化因素分析論文05-03
我國物權(quán)法中預(yù)告登記的范圍分析07-19
淺談統(tǒng)計(jì)分析在企業(yè)中的運(yùn)用12-20
淺談新疆高校教師激勵(lì)機(jī)制面臨的問題及對策分析05-29
定向增發(fā)機(jī)制研究06-03
分析論文答辯中遇到的問題及解決對策05-31