關於MFC的document view結構

2021-06-19 09:23:27 字數 1228 閱讀 2372

關於mfc的document/view結構

cdoctemplate/cdocment/cframewnd/cview之間的指標互指關係

列出:cdoctemplate有指向其餘三者runtimeclass物件的指標:

?cruntimeclass* m_pdocclass;

?cruntimeclass* m_pframeclass;

?cruntimeclass* m_pviewclass;

還有指向document列表的指標:cptrlist m_pdoclist;表示乙個cdoctemplate可以維護多個同型別文件。

cdocument有cdoctemplate* m_pdoctemplate回指cdoctemplate;另有cptrlist m_pviewlist指向乙個view的鍊錶,表示乙個document可以對應多個view。

cframewnd有cview* m_pviewactive指向當前活動在其中的view。

cview有cdocument* m_pdocument指向對應的document。

cdocument/cframewnd/cview之間互相操作的函式

cdocument::updateallviews()—————>cview:onupdate()

cview::getdocument();

cview::getparentframe();

cframewnd::getactiveview();

cframewnd::getactivedocument();

view和document的通訊

程式設計師通過改寫cmyview的如下函式達到view和document通訊的目的:

cview::oninitialupdate():負責view的初始化。

cview::onupdate():frameword在document發生變化時呼叫此函式,此為預留給程式設計師的「用document的變化指導view」的介面。

cview::ondraw():該函式作為wm_paint的間接響應,負責view的更新。

cdocument::updateallviews()/cview::onupdate()這一對函式是命令與執行的關係,呼叫updateallviews()就會通知所有的view,通知方法就是呼叫其onupdate()。

關於mfc控制項

假如是 cedit m e1 就是把編輯框控制項與乙個控制項類變數關聯起來 cstring str m e1.getwindowtex str 獲取這個編輯框中的字串 m e1.setreadonly true 設定這個編輯框為唯讀 還有很多能讀取和設定這個編輯框的函式,自己慢慢看吧 這時繫結的就不...

MFC 關於MFC中CImage的簡單使用

首先要將 include 加進來,開始時我加到stdafx.h中,但一直提示windows.h被重複引入的問題,後將其加在別的標頭檔案中,就可以了.一 的載入 hresult load lpctstr pszfilename throw hresult load istream pstream th...

寫點關於MFC的東西

雖然mfc算挺老的東西了,但總是還有能用到的時候,但也實在是沒有 太大的興趣作深入的研究,打算把以前關於它的一些理解寫一寫,以免遺忘。windows程式設計第五版在講到window 視窗 這個詞語的時候用到 了 魂牽夢縈 這個詞語,確實,翻來覆去我們倒騰的不都是關於視窗那點 事情麼。win32程式和...