mfc幾個類之間的關係

2021-07-26 21:11:33 字數 1374 閱讀 6209

cmainframe是主視窗框架

cdoc是應用程式資料**(文件)主要是用來管理資料,提供儲存和載入資料的功能。有關檔案的讀寫操作在cdoc的serialize函式中進行。

cview是應用程式資料顯示(檢視)主要是用來資料顯示,以及給使用者提供對資料的編輯和修改功能。有關資料或圖形的顯示操作在cview的ondraw函式中進行。

基本的應用程式就是由這四個類構成的。使用者需要做的就是對這些類例項化,以實現所需要的具體功能。

在sdi(單文件)介面中,選單響應遵循這樣乙個順序:選單訊息先由cmainframe

類接收,cmainframe

並不直接在內部尋找對應的相應函式,而是到cview

類尋找。如果cview

類有該訊息的響應函式,那麼就直接呼叫cview

類中的響應函式,否則,轉到cdoc

類尋找,如果cdoc

類中存在該訊息的響應函式,那麼就直接呼叫cdoc

類中的響應函式,否則,返回到cmainframe

類尋找。如果cmainframe

類中也沒有,返回到

類中也沒有找到,表示沒有該選單的響應函式。

可以這樣來理解,選單訊息響應函式的順序是:

。框架、文件、檢視類之間的呼叫關係

1、主框架(cframewnd)中訪問檢視(cview)

cview* getactiveview() const;

通常定義的檢視為cview的派生類,在呼叫自定義檢視物件的方法時

應該這樣寫:((cmousekeyview*)getactiveview())->myfunc();

2、主框架(cframewnd)中訪問文件(cdocument)

getactivedocument,返回cdocument物件;

3、在檢視(cview)中訪問文件(cdocument)

inline cmousekeydoc* cmousekeyview::getdocument()

4、在檢視(cview)中訪問框架(cframewnd)

cframewnd* getparentframe() const;

6、在文件(cdocument)中訪問檢視(cview)

updateallviews

功能:通知所有的視**檔已被修改的資訊

原型:void updateallviews(

cview* psender, // 要更新的檢視指標,如果希望更新所有視

圖,將此引數設為null

lparam lhint=0l, // 包含更改訊息的通知

cobject* phint=null // 保管更改訊息的物件}

7、在其他類中訪問文件類(cdocument)

cdocument* getdocument()

MFC類的關係

前人在csdn總結的,整理總結一下,希望也能幫助一下別人。獲得cmainframe 獲得cchildframe 獲得cdocument 獲得cview afxgetmainwnd m pmainwnd afxgetmainwnd mdigetactive afxgetmainwnd getactiv...

MFC類的關係

前人在csdn總結的,整理總結一下,希望也能幫助一下別人。獲得cmainframe 獲得cchildframe 獲得cdocument 獲得cview afxgetmainwnd m pmainwnd afxgetmainwnd mdigetactive afxgetmainwnd getactiv...

類之間的關係

類之間的關係 內容 網上關於此類的討論非常多,發現對於該問題的理解各有各的說法,而各個說法中又相去甚遠。通過瀏覽這些討論以及對 的參考,發表一下自己的看法.類間關係有很多種,在大的類別上可以分為兩種 縱向關係 橫向關係。縱向關係就是繼承關係,它的概念非常明確,也成為oo的三個重要特徵之一,這裡不過多...