天天看點

通過MFC向導建立程式(筆記)一、建立程式二、大緻結構三、添加消息四、字元集五、其他

一、建立程式

在安裝了MFC程式開發元件後,點選建立

通過MFC向導建立程式(筆記)一、建立程式二、大緻結構三、添加消息四、字元集五、其他

因為剛開始學習,筆者使用的使用如下配置

通過MFC向導建立程式(筆記)一、建立程式二、大緻結構三、添加消息四、字元集五、其他

于此處建立生成的類: 

通過MFC向導建立程式(筆記)一、建立程式二、大緻結構三、添加消息四、字元集五、其他

會自動生成四個主要的大類:

  • MFC的文檔結構:是一個類,用來存儲資料
  • MFC的視圖結構:是一個類,用來顯示和修改資料
  • MFC的架構類:一個容器,這個容器裝了視圖
  • MFC的項目工程類:是整個項目入口

二、大緻結構

通過類視圖會更容易看一些。

通過MFC向導建立程式(筆記)一、建立程式二、大緻結構三、添加消息四、字元集五、其他

若沒有可以通過下圖調出視圖。

通過MFC向導建立程式(筆記)一、建立程式二、大緻結構三、添加消息四、字元集五、其他

該類一般為程式資訊。

通過MFC向導建立程式(筆記)一、建立程式二、大緻結構三、添加消息四、字元集五、其他

CAPP

該類為程式入口位址

通過MFC向導建立程式(筆記)一、建立程式二、大緻結構三、添加消息四、字元集五、其他

 檢視其下的InitInstance()函數,可以發現,和前幾篇中代碼類似,隻是嵌套了更多的方法。

通過MFC向導建立程式(筆記)一、建立程式二、大緻結構三、添加消息四、字元集五、其他

也可以在此處找到,繪制最初視窗的方法。

通過MFC向導建立程式(筆記)一、建立程式二、大緻結構三、添加消息四、字元集五、其他

CMainFrame

OnCreate(LPCREATESTRUCT lpCreateStruct)與PreCreateWindow(CREATESTRUCT &cs)函數位于CMainFrame中,

通過MFC向導建立程式(筆記)一、建立程式二、大緻結構三、添加消息四、字元集五、其他

我們已經知道WinAPI是通過CreateWindow()建立,而PreCreateWindow則是在CreateWindow之前先調用。當CreateWindow調用完成後,産生WM_CREATE信号,最終調用OnCreate。 

Cview

在view中,可以找到OnDraw(CDC*pdc)函數。當OnDraw與OnPaint同時存在時,隻有OnPaint有效。

OnPaint是WM_PAINT的消息處理函數,最終它會執行OnDraw。

通過MFC向導建立程式(筆記)一、建立程式二、大緻結構三、添加消息四、字元集五、其他

 為其添加一行代碼,

通過MFC向導建立程式(筆記)一、建立程式二、大緻結構三、添加消息四、字元集五、其他

 可得到

通過MFC向導建立程式(筆記)一、建立程式二、大緻結構三、添加消息四、字元集五、其他

三、添加消息

通過對CMainFrame類右鍵後,點選屬性。 

通過MFC向導建立程式(筆記)一、建立程式二、大緻結構三、添加消息四、字元集五、其他

 可以檢視所有消息

通過MFC向導建立程式(筆記)一、建立程式二、大緻結構三、添加消息四、字元集五、其他
通過MFC向導建立程式(筆記)一、建立程式二、大緻結構三、添加消息四、字元集五、其他

 通過選中後添加,即可找到對應的消息,消息處理函數的聲明以及實作。

通過MFC向導建立程式(筆記)一、建立程式二、大緻結構三、添加消息四、字元集五、其他
通過MFC向導建立程式(筆記)一、建立程式二、大緻結構三、添加消息四、字元集五、其他
通過MFC向導建立程式(筆記)一、建立程式二、大緻結構三、添加消息四、字元集五、其他

編寫如下代碼。注意,此處我們建立事件的位置是架構上,當我們點選視窗時,會發現,無法彈出消息。

void CMainFrame::OnLButtonDown(UINT nFlags, CPoint point)
{
	// TODO: 在此添加消息處理程式代碼和/或調用預設值

	MessageBox(_T("滑鼠左鍵點選!"));
	CFrameWnd::OnLButtonDown(nFlags, point);
}
           

 再在視圖中通過相似操作建立滑鼠左鍵點選事件。

void CMFC程式View::OnLButtonDown(UINT nFlags, CPoint point)
{
	// TODO: 在此添加消息處理程式代碼和/或調用預設值
	MessageBox(_T("左鍵點選"));
	CView::OnLButtonDown(nFlags, point);
}
           

 可得到彈窗,由此可知,視圖覆寫了架構。

通過MFC向導建立程式(筆記)一、建立程式二、大緻結構三、添加消息四、字元集五、其他

删除可以直接在添加處将其移除,注意隻是添加了注釋,代碼内容可以随時還原。

四、字元集

為了不去考慮不同字元集的位元組占位置問題,MFC會自動适應目前使用的字元集。

TCHAR:就是其字元類型,它的本質是一個條件編譯。

TEXT()或_T()則是用來将其中的文字定義為TCHAR。

五、其他

CWnd:所有視窗類的父類。MessageBox隻有其派生類可用。

afx_XXX:一般為全局函數,不屬于某個類。

XXXEx,XXXW:一般為拓展函數。

繼續閱讀