Lesson2 MFC框架程式剖析

2021-06-18 06:37:27 字數 2532 閱讀 7955

1.  mfc簡介

(1)mfc(microsoft foundation class,微軟基礎類庫)是微軟為了簡化程式設計師的開發工作所開發的

一套c++類的集合

,是一套物件導向的

函式庫

,利用這些類

,可以有效發幫助程式設計師完成

windows

應用程式的開發

是乙個輔助生成源**的

嚮導工具

,它可以幫助我們自動生成基於

mfc框架的源**

.在嚮導的每乙個步驟中

,我們可以根據需要來選擇各種特性

,從而實現定製應用程式.

2. 視窗類,視窗物件與視窗關係

(1)視窗類中定義乙個

型別為hwnd成員變數,

用來儲存與之相關的視窗控制代碼

,可以用乙個視窗類的例項即視窗物件

來對應乙個建立的視窗

(是一種資源

),(2)視窗物件與視窗之間的關係是

:c++視窗類物件與視窗並不是一回事

,

它們之間唯一的關係是

c++視窗類物件內部定義了乙個視窗控制代碼變數

,儲存了與這個

c++視窗類物件相關的那個視窗的控制代碼

.視窗銷毀時,與之對應的c++視窗類物件銷毀與否,要看其生命週期是否結束

,但c++視窗類物件銷毀時,與之相關的視窗將銷毀,

因為它們之間的紐帶

(m_hwnd)

已經斷了

,因此這時要**視窗資源

.視窗銷毀時呼叫

destroywindow函式,

視窗類物件銷毀即將

m_hwnd

變數設定為

null.

說明:

(1)在

main

或winmain

之前,全域性變數已經被分配記憶體並初始化了

(2)在

mfc中,在

winmain

之前有個

先被構造並被初始化,而由於

子類建構函式執行前,其父類的構

造函式先被執行,所以

的父類的建構函式先執行。產生了

物件後,在

winmain()

中的指標

*pthread

和就有了內容。

(3)mfc

大致流程:

winmain()

afxwinmain() 而在

中的**

csingledoctemplate* pdoctemplate;

pdoctemplate = new csingledoctemplate(

idr_mainframe,

runtime_class(ctestdoc),

runtime_class(cmainframe),       // main sdi frame window

runtime_class(ctestview));

adddoctemplate(pdoctemplate);

將這三個類ctestdoc,cmainframe,ctestview關聯起來了。

(4)如何在單文件檔案中顯示乙個

cbutton

的物件?

在cmainframe::oncreate()

中定義乙個

cbutton

的物件btn;

然後呼叫btn.create("維新",ws_disabled   |ws_child | ws_visible | bs_auto3state,

crect(0,0,300,100),/*getparent(),*/this,123);

注意:

<1>.

此處btn不能是區域性變數,否則它的生命週期太短,將不能顯示。

<2>.

在cbutton

類的create

函式的第二個引數中加入

ws_visible引數才行。否則必須呼叫

showwindow

也可以在view的oncreate訊息響應函式中加入

<3>.cbutton

類的定義標頭檔案在

afxwin.h

中,而stdafx.h包含了afxwin.h,所以可以直接使用。因為

mfc中的

每乙個類中都有

#include "stdafx.h"

的宣告。

MFC框架程式剖析

1 mfc microsoftfoundation class,微軟基礎類庫 是微軟為了簡化程式設計師的開發工作所開發的一套c 類的集合,是一套物件導向的函式庫,以類的方式提供給使用者使用 二 基於mfc的程式框架剖析 1 mfc程式的classview標籤頁 圖 2 繼承關係 1 cmainfra...

MFC框架程式剖析

mfc程式的執行過程 4 進入訊息迴圈。雖然也設定了預設的視窗過程函式,但是mfc應用程式實際上是採用訊息對映機制來處理各種訊息的。當收到wm quit訊息時,退出訊息迴圈,程式結束。面已經知道,在乙個windows程式中,winmain函式作為程式的入口函式,乙個程式的是 設計視窗 給視窗設定相應...

MFC框架程式解析

mfc的 程式框架 mfc訊息對映機制的具體實現方法 在每個能接收和處理訊息的類中,定義乙個訊息和訊息函式靜態對照表,在訊息對映表中,訊息與對應的訊息處理函式指標式成對出現的。某個類能處理的所有訊息及其對應的訊息處理函式的位址都列在這個類所對應的靜態表中。當有訊息需要處理時,程式只要搜尋該訊息靜態表...