關於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程式和...