1 什麼叫類可串行化?
:從CObject派生,實現Serialize函數,使用了DECLARE_SERIAL宏和IMPLEMENT_SERIAL宏,有缺省構造函數
:對象通過寫出描述自己狀態的數值來記錄自己,叫對象的串行化。把對象保存在存儲器上,用到時可恢復原來的狀態,使對象可按流的方式讀寫
2 神祕的基類CObject類
實現了:對運行時類型識別的支持,對動態創建的支持,對對象保存和可串行化的支持,對錯誤診斷的支持
AssertValid()產生斷言,發出消息,列出斷言失敗的行數和文件名並終止程序,
dump(),將診斷內容轉存到CDumpContext中
IsSerializable()測試對象是否可串行化,
Serialize()從檔案文件中裝載或向檔案文件中存儲某對象,
CRuntimeClass結構: 類名,對象字節長度,…
RUNTIME_CLASS(class_name), 獲得一個運行類結構,返回一個CRuntimeClass結構指針
GetRuntimeClass(),返回該對象類的CRuntimeClass結構指針
IsKindOf()判斷對象是否屬於該類
3 CCmdtarget又實現了什麼?
--->封裝了MFC的消息映射機制OnCmdMsg,封裝了顯示沙漏標的功能BeginWaitCursor,封裝COM的IDispatch接口GetIDispatch。
4 舉例MDI程序CMyDoc
void CMyDoc::Serialize(CArchive& ar) //確定歸檔文件是否被存儲
{
if( ar.IsStoring()) {add storing code here}
else { add loading code here }
}
#ifdef _DEBUG
void CMyDoc::AssertValid() const
{
CDocument::AssertValid();
}
void CMyDoc::Dump( CDumpContext& dc) const
{
CDocument::Dump(dc);
}
#endif
5 由global想到的如何在MFC中使用全局變量
a、頭文件中extern聲明,實現文件中定義
b、在MyApp類中定義,其他類可通過獲取MyApp類的指針來調用,
c、聲明通用類,將其變量和函數聲明爲static,調用時直接按"類::變量"
MFC第一天——基類1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
VS2010下實現一個簡單的Windows程序
suseyaoyao
2018-08-27 15:13:17
MFC學習筆記——基礎
biluolunhui
2018-08-26 23:32:58
初學MFC(一)
u013330981
2018-08-26 19:11:02
MFC第三天——RTTI & Dynamic Creation
wangjinwj2008
2018-08-26 11:05:26
QT和MFC比較
wangjinwj2008
2018-08-26 11:05:24
MFC第二天——基類2及程序初始化
wangjinwj2008
2018-08-26 11:05:24
MFC中獲取App,MainFrame,Doc和View類等指針的方法
wangjinwj2008
2018-08-26 11:05:24
execute、executeQuery和executeUpdate之間的區別
h258384667
2018-08-26 09:20:33
正確的重載operator+
h258384667
2018-08-26 09:20:31
ISO8859-1、UTF-8 與GB2312
h258384667
2018-08-26 09:20:31
OleInitialize、CoInitialize、CoInitializeEx和AfxOleInit()區別
h258384667
2018-08-26 09:20:27
禁止改變列表視圖控件的列寬
h258384667
2018-08-26 09:20:27
ActiveX去掉限制
h258384667
2018-08-26 09:20:27
資源修改 添加刪除後 導致 error RC2135 錯誤
xuanshilee
2018-08-25 10:31:19
GDI+繪製矩形,並且實現可旋轉、縮放、移動功能(基於MFC對話框)
起司呆
2018-08-25 00:15:56