mfc把早期的視窗類的功能分成三個部分:資料儲存、管理部分,資料顯示與使用者互動部分,管理視窗框的大小、標題、選單條、狀態條的窗框部分。
從而形成了三個類:cdocument、檢視類cview和視窗框架類cframewnd。
上面的三個物件之間的關係類似於房屋的窗戶,視窗框架類cframewnd相當於窗框,檢視類cview相當於窗框上的玻璃,而文件類cdocument就相當於室內的物品。在房屋的外面,透過玻璃可以窺見室內的部分物品,作為房屋,它可以有多個窗戶從不同的角度來檢視房屋中的同一物品。
class cmydoc:public cdocument
;cmydoc::cmydoc()
void cmydoc::setmem(int i,int x)
int cmydoc::getmem(int i)
cview物件沒有自己的邊框,它的作用是為框架視窗提供使用者區。
class cmyview:public cview
;
其中最重要的是getdocument和ondraw。
前者是檢視類物件獲取文件資料的重要手段,檢視類物件通過它來訪問文件類物件的資料。
後者是乙個檢視處理函式,它的作用是用來更新檢視的顯示。
程式的資料部分交由文件類物件負責,與使用者互動的訊息處理和顯示交由檢視類物件負責,那麼最後的那個cframewnd類所負責的事件就不多了。
它的主要**如下:
class cmainframe:public cframewnd
;
當然cframewnd也從cwnd中得到了很多方法,具體的可以自己去google。
最後,為了把檢視物件、框架視窗物件和文件物件組織在一起並統一管理,mfc使用了乙個叫做文件模板的抽象類cdoctemplate。它有兩個派生類:單文件模板類csingledoctemplate和多
文件模板類cmultidoctemplate。
MFC學習筆記( )
選單響應順序 view類 文件類 框架類 應用程式類 訊息分類 標準訊息 除wm command之外,所有以wm 開頭的訊息。從cwnd派生的類,都可以接收到這類訊息。命令訊息 來自選單 加速鍵或工具欄按鈕的訊息。這類訊息都以wm command呈現。在mfc中,通過選單項的標識 id 來區分不同的...
MFC學習筆記
1.oncreate函式目前來看只執行了一次 2.對於隱藏的this指標,不是類中的函式成員。當在類的非靜態成員函式中訪問類的非靜態成員的時候,編譯器會自動將物件本身的位址作為乙個隱含引數傳遞給函式 也就是說,即使你沒有寫上this指標,編譯器在編譯的時候也是加上this的,它作為非靜態成員函式的隱...
MFC 學習筆記
作業 用單文件檢視完成左鍵使圓圈變小,右鍵使圓圈變大,按住ctrl的同時移動滑鼠使圓圈跟著移動。document處理頁面的資料 view呈現和互動。on wm lbuttonup等滑鼠訊息帶著uint nflags 掩碼 引數,記錄滑鼠訊息的同時的附加資訊 比如ctrl或shift鍵 在initin...