MFC程式的構造過程和執行機理

2021-05-24 23:42:00 字數 1078 閱讀 3710

乙個完整的視窗需要經過下面四個操作步驟:

1.設計乙個視窗類

2.註冊視窗類

我們的第乙個mfc程式中的 cmainframe 類有乙個成員方法(函式)precreatewindow(createstruct& cs)

bool cmainframe::precreatewindow(createstruct& cs)

它的實現裡呼叫了 cframewnd::precreatewindow(cs)  ,

cframewnd::precreatewindow的具體實現檔案是:microsoft visual studio/vc98/mfc/src/winfrm.cpp

開啟看看,

bool cframewnd::precreatewindow(createstruct& cs)

if ((cs.style & fws_addtotitle) && afxdata.bwin4)

cs.style |= fws_prefixtitle;

if (afxdata.bwin4)

cs.dwexstyle |= ws_ex_clientedge;

return true;

}afxdeferregisterclass 在 microsoft visual studio/vc98/mfc/src/afximpl.h 中有定義,

#define afxdeferregisterclass(fclass) afxenddeferregisterclass(fclass)

其實 afxdeferregisterclass 就是:afxenddeferregisterclass,

在 microsoft visual studio/vc98/mfc/src/wincore.cpp 檔案中有 afxenddeferregisterclass 函式的定義:

bool afxapi afxenddeferregisterclass(long ftoregister)

可以看到他裡面有很得if語句,這個函式就是註冊視窗類。

3.建立視窗

4.顯示及更新視窗

最後我們看看這個mfc程式的訊息迴圈,在

MFC程式執行過程

一 mfc程式執行過程剖析 相信大家有點暈點了吧,實際程式設計中沒有必要深刻理解這麼多,這些大都是由mfc內部自動幫我們完成的。實際mfc程式設計過程中,其實懂得mfc程式中各個函式的執行流程即可。有時候過於追究mfc細節會白白浪費我們的精力,應該將主要精力放在使用mfc解決實際問題上。二 vc6中...

MFC程式的執行過程

一 程式的誕生 2 afxwinmain執行afxwininit,後者呼叫afxinitthread,把訊息佇列盡量加大到96 6 cmyframewnd構造呼叫create,產生主視窗,我們在create引數中指定的視窗類是null,於是mfc根據視窗種類,自行的為我們註冊乙個名為 afxfram...

MFC應用程式的執行過程和原理

我們有很多的工程師是從做微控制器程式使用c語言開發轉到c 的mfc開發的,我們的思路都是c語言從main函式入口開始執行,這就是慣性思維.當我們切換到mfc的框架下不知道這個 應該是怎麼閱讀和怎麼寫,沒有找到我們熟悉的main函式入口.不知道你看到這裡有沒有認同,在win32中還能看到winmain...