學習MFC深入詳解 李久進 Demo1

2021-06-01 05:05:32 字數 1308 閱讀 7754

mfc的巨集觀框架體系:

mfc是c++類庫,程式設計師就是通過使用、繼承和擴充套件適當的類來實現特定的目的。

應用程式物件,文件物件,視物件,主框架視窗物件(視視窗,工具條和狀態列)和文件邊框視窗物件。

檔案預編譯將project中使用的一些mfc標準標頭檔案預先編譯,以後不再編譯該部分標頭檔案,直接使用預編譯的結果。預編譯標頭檔案通過編譯stdafx.cpp生成,以工程名命名。

編譯器認為,所以在指令#include "stdafx.h"前的**都是預編譯的,它跳過#include "stdafx.h"指令,使用projectname.pch編譯這條指令之後的所有**。

mfc object 和 windows object的區別:

資料結構:

mfc object是相應c++類的例項(是mfc或程式設計師定義);windows object 是windows系統的內部結構,通過乙個控制代碼來引用;

mfc給類定義了乙個成員變數來儲存mfc object對應的windows object的控制代碼。

層次:mfc object是高層的,windows object是低層的;mfc object封裝了windows object的大部分或全部功能,mfc object的使用者不需要直接應用windows object的handle使用win32 api,代替它的是引用相應的mfc object的成員函式。

建立:mfc object通過建構函式由程式直接建立;windows object由相應的sdk函式建立。

首先建立mfc object,或在stack中建立,或在heap中建立,mfc object的控制代碼例項變數為空,或不是乙個有效的控制代碼。然後呼叫mfc object的成員函式建立相應的windows object,mfc的控制代碼變數儲存乙個有效控制代碼。

轉換:使用範圍:

mfc object對系統的其他程序來說是不可見、不可用的;而windows object一旦建立,其控制代碼是整個windows系統全域性的。典型:乙個程序可以獲得另乙個程序的視窗控制代碼,並給該視窗傳送訊息。對同乙個程序的執行緒來說,只可以使用本執行緒建立的mfc object,不能使用其他執行緒的mfc object。

銷毀:mfc object隨著析構函式的呼叫而消失;但windows object必須由相應的windows系統函式銷毀。裝置描述表cdc類的物件有所不同,其對應的hdc控制代碼物件可能不是被銷毀,而是被釋放。

windows object

用sdk的win32 api編寫windows應用程式的共同規律:

編寫winmain函式——編寫處理訊息和事件的視窗過程wndproc,在winmain裡頭註冊視窗(register window),建立視窗,然後開始應用程式的訊息迴圈。

深入淺出MFC學習篇

1.異常處理 exception handling c 中匯入了三個新的exception保留字 1.try,2.catch,3.throw 2.模板 template 模板是根據引數型別生成函式和類的機制 有時稱為 引數決定型別 通過使用模板,可以只設計乙個類來處理多種型別的資料,而不必為每一種型...

VC 深入詳解 學習筆記

一 1 使用定義二進位制的值來定義相關的意義 如dword w cs hredraw cs vredraw 這樣就可以通過 或 運算來組合,同時要是不需要某個屬性可以通過 取反結合 與 運算來實現dword w cs hredraw cs vredraw dword h w cs verdraw 2...

MFC框架流程(vc 深入詳解第3課)

通過學習vc 深入詳解,加上vs提供的call stack工具,總結出mfc框架的大致流程 3 然後afxwinmain呼叫initinstance,它又呼叫processshellcommand函式 4 視窗類的設計與註冊了 首先,是呼叫cmainframe建構函式,然後呼叫其成員函式 loadf...