前人在csdn總結的,整理總結一下,希望也能幫助一下別人。
獲得cmainframe
獲得cchildframe
獲得cdocument
獲得cview
afxgetmainwnd()
m_pmainwnd
afxgetmainwnd()->mdigetactive()
afxgetmainwnd()->getactiveframe()
sdi:afxgetmainwnd()->getactiveview()->getdocument()
mdi:afxgetmainwnd()->mdigetactive()->getactiveview()->getdocument()
sdi:afxgetmainwnd()->getactiveview()
mdi:afxgetmainwnd()->mdigetactive()->getactiveview()
在cmainframe中
mdigetactive()
getactiveframe()
sdi:getactiveview()->getdocument()
mdi:mdigetactive()->getactiveview()->getdocument()
sdi:getactiveview()
mdi:mdigetactive()->getactiveview()
在cchildframe中getparentframe()
getactiveview()->getdocument()
getactiveview()
在cdocument中afxgetmainwnd()
afxgetmainwnd()->mdigetactive()
afxgetmainwnd()->getactiveframe()
position pos = getfirstviewposition();getnextview(pos)
在cview中afxgetmainwnd()
getparentframe()
getdocument()
在其他類中afxgetmainwnd()
afxgetmainwnd()->mdigetactive()
afxgetmainwnd()->getactiveframe()
sdi:afxgetmainwnd()->getactiveview()->getdocument()
mdi:afxgetmainwnd()->mdigetactive()->getactiveview()->getdocument()
sdi:afxgetmainwnd()->getactiveview()
mdi:afxgetmainwnd()->mdigetactive()->getactiveview()
理一理mfc的這幾個類的關係,可以很容易明白上面的這些亂七八糟的邏輯。
mainframe是主框架,也基本可以用全域性函式訪問到。
mainframe下是若干個childframe,childframe中若干個view和document(可能不成對),childframe管理著view,view和document進行互操作。
因此整體框架就出來了,一般除了直接應用的關係都可以通過mainframe-->active childframe-->active view-->document這條線進行訪問,這應該叫什麼來自?萬能方法吧^_^。
MFC類的關係
前人在csdn總結的,整理總結一下,希望也能幫助一下別人。獲得cmainframe 獲得cchildframe 獲得cdocument 獲得cview afxgetmainwnd m pmainwnd afxgetmainwnd mdigetactive afxgetmainwnd getactiv...
mfc幾個類之間的關係
cmainframe是主視窗框架 cdoc是應用程式資料 文件 主要是用來管理資料,提供儲存和載入資料的功能。有關檔案的讀寫操作在cdoc的serialize函式中進行。cview是應用程式資料顯示 檢視 主要是用來資料顯示,以及給使用者提供對資料的編輯和修改功能。有關資料或圖形的顯示操作在cvie...
MFC類的結構
1.cobject類,mfc庫中絕大部分類的基類,封裝了mfc中的最基本機制。執行時類資訊機制 動態建立機制 序列化機制等。2.ccmdtarget 訊息對映機制最基類 4.cdocment及子類 文件類,負責管理資料 5.cdoctemplate以及子類 文件模板類 csingledoctempl...