乙個最簡單的MFC程式框架剖析

2022-07-23 01:57:26 字數 1633 閱讀 7488

首先在vc中(我使用的是vc2008)建立乙個win32應用程式,並且選擇空專案。建立完成後,選擇專案屬性->配置屬性->常規->mfc的使用

選擇在共享dll中使用mfc。現在這個空專案中沒有任何的檔案。

//class

public

public

:virtual

bool initinstance();

};//

frame window class

class

cmyframe : 

public

cframewnd

;#include 

<

afxwin.h

>

//mfc library header file declares base classes

#include ""

//=newcmyframe();

m_pmainwnd

->

showwindow(m_ncmdshow);

m_pmainwnd

->

updatewindow();

return

true;

}begin_message_map(cmyframe, cframewnd)

on_wm_lbuttondown()

on_wm_paint()

end_message_map()

cmyframe::cmyframe()

void

cmyframe::onlbuttondown(uint nflags, cpoint point)

void

cmyframe::onpaint()

ctrl+f5執行程式,就是乙個最簡單的視窗,並且畫了乙個字串:「hello world!」,同時點選滑鼠左鍵會彈出乙個messagebox。這就是不通過應用程式嚮導我們自己構建的乙個mfc應用程式,但是我們繼承了mfc的基類,也就是在mfc的應用程式框架下的程式。

下面對這個程式框架詳解:

1,winmain函式:每乙個windows應用程式要有乙個入口函式,即winmain函式。但是這裡它已經隱藏在了mfc應用程式框架中了。

6,cmyframe類:這個類的乙個物件就代表了應用程式的主框架視窗。構造函式呼叫基類cframewnd的成員函式create的時候,windows建立實際視窗結構。 showwindow和updatewindow函式也是基類的成員函式,呼叫來顯示視窗。

7,cmyframe::onlbuttondown函式:當觸發了左鍵點選訊息on_wm_lbuttondown 時候的響應函式,它是cmyframe的成員函式(注意的是它並不是基類的成員函式,也即不是虛函式,它使用了巨集來把特定的訊息對映到了派生類的成員函式。之所以mfc對windows訊息不使用虛函式,因為單單cwnd就要超過100個訊息,每個訊息都定義乙個虛響應函式,那麼每個其派生類都要頂乙個虛函式排程表,即使大多訊息不使用,這樣太複雜了)。

8,cmyframe::onpaint函式:每次需要重繪視窗的時候,應用程式框架就呼叫cmyframe的成員函式onpaint。cpaintdc是與gdi有關的乙個類。最後顯示hello world!。

MFC學習筆記(一) MFC框架程式剖析

基於mfc的框架程式剖析 一 mfc 程式中的winmain函式 1.先來個定義,mfc 一套物件導向的函式庫,一套c 類的集合,搞windows應用程式的開發。2.mfc將大部分的windows api封裝到 中,以類成員函式的形式提供給程式設計師呼叫。3.mfc中類的命名都以字母 c 開頭,就像...

乙個最簡單聊天程式

客戶端的 include include include include pragma comment lib,ws2 32.lib socket self long chang sockaddr in local1 wsadata data int datareturn bool canrecv ...

乙個簡單的verlig程式 乙個簡單C程式的介紹

我們前面學了c語言的一些理論知識,今天通過乙個簡單的程式先來看一看c語言程式是什麼樣子。然後再對程式中的 進行介紹。這個語句的功能是進行有關的預處理操作。include稱為檔案包含命令,後面尖括號的內容稱為標頭檔案或首檔案。此處指包含stdio.h系統標頭檔案,在下面主函式中使用的printf 函式...