首先我們來寫乙個例子:
1.建乙個win32簡單應用程式,不要認為這樣就不能寫出mfc程式,因為是不是mfc程式取決於調沒調mfc函式。
2. 刪除入口函式,只留下#include "stdafx.h"
3.將stdafx.h中的標頭檔案 更改為 。
4.project-->settings選單項中設定使用mfc庫
5.編寫**
:
#include "stdafx.h"
#include "resource.h"
//檢視類(建立方式與工具欄與工具欄步驟相似)
class cmyview:public cview
;begin_message_map(cmyview,cview)
on_command(id_test,ontest)
end_message_map()
void cmyview::ontest()
void cmyview::ondraw( cdc* pdc )
//框架視窗類
class cmainframe :public cframewnd
;begin_message_map(cmainframe,cframewnd)
on_wm_create()
end_message_map()
int cmainframe::oncreate( lpcreatestruct lpcreatestruct )
//建立檢視視窗
m_pwndview = new cmyview;//在堆中建立物件
m_pwndview->create(null,"myview",ws_visible|ws_child|ws_border,crect(0,0,100,100),
this,afx_idw_pane_first);//afx_idw_pane_first可使邊框和客戶區重疊
//將檢視設定為活動檢視
//方式1:呼叫函式
// setactiveview(m_pwndview);
//方式2:指標賦值
m_pviewactive = m_pwndview;
return 0;
}//應用程式類
;
注意:
例項化cmyview物件前必須重寫ondraw()函式,因為ondraw()是純虛函式
檢視視窗的建立是在cmainframe的 oncreate()函式中調create函式
思考&提公升:
1. 為什麼非要使用檢視類的指標來?
由於在cview::postncdestroy()
函式中,呼叫了
delete this;
所以,檢視物件的建立放到堆中,即
new
物件,
2. 建立檢視時,怎樣檢視鋪滿框架視窗的客戶區?
建立時檢視的id填afx_idw_pane_first
3. 為什麼要將檢視物件設定為框架視窗的活動檢視?
因為 處理選單等命令訊息的先後順序:
活動檢視
->
框架視窗
->
應用程式。我們將對此進行驗證:在訊息提示框那行加斷點,除錯執行,我們通過呼叫堆疊得到下圖呼叫資訊
選單訊息都屬於命令訊息,所以我們找cframewnd 的 oncmdmsg,雙擊進入cframewnd::oncmdmsg()中得到
bool cframewnd::oncmdmsg(uint nid, int ncode, void* pextra,
afx_cmdhandlerinfo* phandlerinfo)
可以看出:處理選單等命令訊息的先後順序:
活動檢視
->
框架視窗
->
應用程式 4.
onpaint
與ondraw
之間的關係?
onpaint調的是ondraw。因為
ondraw
函式比onpaint
更簡單,不用新增訊息對映所以檢視的資訊顯示,直接在
ondraw
函式中。
5.為什麼不用框架視窗的客戶區顯示資料,而非要用檢視視窗顯示?
框架視窗:就好像個容器,負責裝各種各樣的子視窗
檢視視窗:是一種子視窗,父類是框架視窗,負責顯示資料。這樣做是因為當應用程式比較複雜時,我們希望乙個類去做一件事
類和類的使用
class people name xiaoming 類屬性,類裡面的變數稱為屬性 age 18 私有屬性,別人知道後不會去動它,概念性問題 age 18 也是私有屬性,訪問會報錯 a people 例項化 print a.age 通過例項訪問類屬性,雖然是私有的,但是訪問還是可以列印,b peop...
類模板的使用 類模板使用總結
歸納以上的介紹,可以這樣宣告和使用類模板 先寫出乙個實際的類。將此類中準備改變的型別名 如int要改變為float或char 改用乙個自己指定的虛擬型別名 如上例中的t 在類宣告前面加入一行,格式為 templatetemplate class a 類體用類模板定義物件時用以下形式 類模板名 實際型...
類的使用,物件的使用
一 類的使用 class student school luffycity def eat self print yes defdrink self print drink 檢視print student.dict 增student.teacher gaohui print student.dict...