深淺MFC學習筆記總結 MFC程式的執行過程

2021-04-07 08:59:41 字數 1199 閱讀 9033

mfc程式的執行過程

1  首先產生全域性的物件

(任何乙個

mfc程式都會產生這樣乙個物件)

2    

進入到intafxapi afxwinmain(…)

這個函式中。 3

進入到afxwininit(…

)。

sdk程式

winmain

函式的四個引數

hinstance hinstance,hinstance hprevinstance ,lpstr lpcmdline

在中都是成員變數,在這一步,將

afxwinmain

傳進來的這些引數值賦給

對應的成員變數。 4

呼叫的是

。該函式在

中並未被改寫。

5。呼叫的是

。該函式被改寫了。 6

第5

步中new c**framewnd

,引發c**framewnd

的建構函式。

7  

執行c**framewnd

的建構函式中的

create

函式。呼叫的是

cframewnd::create

函式。

8  cwnd::createex()

。該函式中定義了

cs結構(

cs可以在下一步中修改)。產生視窗,得到視窗控制代碼

hwnd。

9  cframewnd::precreatewindow

(createstruct & cs

)。不同類的

precreatewindow

成員函式都是在視窗產生之前一刻被呼叫,準備用來註冊視窗類。可以這樣理解,在

mfc為我們註冊視窗類之前,預留了這個介面,我們只要在

precreatewindow

修改cs

中的資料,就可以產生我們期望的視窗屬性。

10 

註冊該視窗.

11 

回到第5

步中,顯示視窗。 呼叫

。中又呼叫了

cwintheard::run()

。該函式維護訊息佇列中的訊息迴圈,傳送訊息到

afxwndproc

。下面就是

message map

的事了…

-- 對應第六章 mfc程式的生死因果

MFC學習筆記 MFC建立視窗

mfc 微軟基礎類庫 microsoft foundation classes 微軟公司提供的類庫,以 c 形式封裝了windows api,並且包含了乙個應用程式框架,減少開發工作量。mfc需要包含標頭檔案 include原始檔是.cpp 配置 程式開始時,先例項化應用程式類物件 執行程式的入口函...

MFC學習筆記( )

選單響應順序 view類 文件類 框架類 應用程式類 訊息分類 標準訊息 除wm command之外,所有以wm 開頭的訊息。從cwnd派生的類,都可以接收到這類訊息。命令訊息 來自選單 加速鍵或工具欄按鈕的訊息。這類訊息都以wm command呈現。在mfc中,通過選單項的標識 id 來區分不同的...

MFC學習筆記

1.oncreate函式目前來看只執行了一次 2.對於隱藏的this指標,不是類中的函式成員。當在類的非靜態成員函式中訪問類的非靜態成員的時候,編譯器會自動將物件本身的位址作為乙個隱含引數傳遞給函式 也就是說,即使你沒有寫上this指標,編譯器在編譯的時候也是加上this的,它作為非靜態成員函式的隱...