MFC常用的類詳細介紹


常用的MFC類

CRuntimeClass結構

在CRuntimeClass結構中定義了類名對象所占存儲空間的大小類的版本號等成員變量及動態創建對象派生關系判斷等成員函數。每一個從CObject類派生的類都有一個CRuntimeClass結構同它關聯,以便完成在運行時得到對象的信息或基類的信息。

要使用CRuntimeClass結構,必須結合使用RUNTIME_CLASS()和其他有關運行時類型識別的MFC宏。

CObject類

MFC的CObject類為程序員提供了對象診斷、運行時類型標識和序列化等功能。

(1)       對象診斷:利用成員函數AssertValid進行對象有效性檢查;利用成員函數Dump輸出對象的數據成員的值,診斷信息以文本形式放入一個數據流中,用於調試器的輸出窗口信息顯示。(只能用於Debug版的應用程序)

(2)       運行時類型識別:GetRuntimeClass根據對象的類返回一個相關聯的指向CRuntimeClass結構的指針,它包含了一個類的運行信息;函數IsKindOf用於測試對象與給定類的關系。

(3)       通過與Carchive相結合,CObject類為其派生類提供了序列化功能。要創建一個支持序列化的派生類,必須將DECLARE_SERIAL宏添加到類定義中,將IMPLEMENT_SERIAL添加到類的實現文件中。

CCmdTarget類

CObject直接派生,所有能實行消息映射MFC類的基類。功能如下:

(1)消息發送:MFC應用程序為每個CCmdTarget派生類創建一個稱為消息映射表的靜態數據結構,可將消息映射到對象所對應的消息處理函數上。

(2)設置光標:程序正在進行某種操作:BeginWaitCursor()將光標改為沙漏形狀;操作完成:EndWaitCursor()將光標改回到之前的形狀;處於等待狀態時由於某些操作改變了光標形狀后,RestoreWaitCursor()用於將光標還原為等待狀態。

(3)支持自動化:CCmdTarget類支持程序通過COM接口進行交互操作,自動翻譯COM接口的方法。方法是調用EnableAutomation()、FromIDispatch()、GetIDispatch()、IsResultExpected()和 OnFinalRelease()。

CWinThread類

由CCmdTarget派生,主要工作是創建和處理消息循環

CWinApp類

從CWinThread類派生,成員函數InitApplication()、InitInstance()、Run()。

在MFC應用程序中有且僅有一個CWinApp派生類的對象,代表程序運行的主線程,代表應用程序本身

CWnd類

由CCmdTarget類直接派生,是MFC中最基本的GUI對象。公共變量m_hWnd用於存放供API函數調用的窗口句柄。

CframeWnd類

從CWnd類派生而來,主要用來掌管一個窗口。其對象是一個框架窗口,包括邊界、標題欄、菜單、最大化按鈕、最小化按鈕和一個激活的視圖

其常用成員函數:

GetActiveDocument()得到當前文檔的指針。

GetActiveView()得到當前視圖的指針。

SetActiveView():激活一個視圖。

GetTitle()得到框架窗口的標題。

SetTitle()設置框架窗口的標題。

SetMessageText()設置狀態欄文本。

CDocument類

從CCmdTarget派生,作為用戶文檔的基類,代表了用戶存儲或打開一個文件。主要功能是把對數據的處理從對用戶的界面處理中分離出來,同時提供一個與視圖類交互的接口。

常用的成員函數有:

OnNewDocument()建立新文檔。

OnOpenDocument()打開一個文檔。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM