MFC學習筆記 MFC建立視窗

2021-10-24 01:34:35 字數 2848 閱讀 5995

mfc:微軟基礎類庫(microsoft foundation classes)微軟公司提供的類庫,以 **c++** 形式封裝了windows api,並且包含了乙個應用程式框架,減少開發工作量。

mfc需要包含標頭檔案#include原始檔是.cpp

配置:

程式開始時,先例項化應用程式類物件

執行程式的入口函式initinstance

給框架類myframe物件動態分配控制項(呼叫他的建構函式),在建構函式內部,通過cwnd::create建立視窗

框架類物件顯示視窗cwnd::showwindow

框架類物件更新視窗cwnd::updatewindow

儲存框架類物件執行cwinthread::m_pmainwnd

訊息對映是乙個將訊息和成員函式相互關聯的表:

比如,視窗接收到了乙個滑鼠單擊訊息,mfc將搜尋該視窗的訊息對映,如果有乙個

處理wm_lbuttondown訊息的處理程式,就會呼叫onlbuttondown

宣告巨集寫到.h中

declare_message_map()

分界巨集 寫到.cpp中

begin_message_map(myframe, cframewnd)

end_message_map()

找到訊息巨集 寫到分界巨集中間

on_wm_lbuttondown()

on_wm_char()

on_wm_paint()

把函式原型宣告寫到.h中

afx_msg void onlbuttondown(uint, cpoint);

afx_msg void onchar(uint, uint,uint);

afx_msg void onpaint();

函式的實現寫到.cpp中

標頭檔案

#pragma once

#include

//mfc標頭檔案

class:;

// 框架類(視窗類) cframewnd派生類(子類)

class

myframe

:public cframewnd

;

cpp

#include

"mfcp.h"

//對應類宣告的標頭檔案

//有且只有乙個的應用程式類

initinstance()

//程式入口位址

//分界巨集 定義訊息巨集 必須用在類實現中

begin_message_map

(myframe, cframewnd)

//訊息對映機制應用的類,該類的基類 //開始

on_wm_lbuttondown()

//滑鼠左鍵按下

on_wm_char()

//鍵盤

on_wm_paint()

//繪圖

end_message_map()

//結束

myframe::

myframe()

void myframe::

onlbuttondown

(uint, cpoint point)

void myframe::

onchar

(uint key, uint, uint)

void myframe::

onpaint()

建立時選擇mfc應用程式

暫時選擇,單個文件,mfc標準

一路下一步,在這裡可以配置視窗樣式

鑑於解決方案比較多,可以在類檢視中進行檢視。

在類檢視中雙擊其中乙個類,可以定位到該類的標頭檔案中;雙擊類檢視下方的函式可進入cpp中。

類檢視中右鍵類,選擇屬性,右側選擇訊息

在建立出的五個類中,caboutdlg為關於的視窗;

資料的儲存和載入由文件類來完成,資料的顯示和修改則通過視類(view)來完成;

view覆蓋在frame之上,所有滑鼠事件寫在view類中;

在frame類中,有乙個precreatewindow函式,可以在視窗生成前修改視窗外觀,通過傳遞createstruct結構體引數完成;create()建立視窗成功後會傳送乙個訊息wm_create,oncreate()來相應這個訊息;

mfc中afx字首的函式都是全域性函式;

如在c***xxview類中右鍵屬性–訊息–滑鼠左鍵,在填充的**中完成想要的操作

draw事件

void cmfcguideview::

ondraw

(cdc* pdc)

如果有了ondraw 就不要有onpaint,同時存在時,onpaint會把ondraw覆蓋。

少年行新豐美酒鬥十千,咸陽遊俠多少年。 相逢意氣為君飲,繫馬高樓垂柳邊。

漢家君臣歡宴終,高議雲台論戰功。 天子臨軒賜侯印,將軍佩出明光宮。

出身仕漢羽林郎,初隨驃騎戰漁陽。 孰知不向邊庭苦,縱死猶聞俠骨香。

一身能臂兩雕弧,虜騎千群隻似無。 偏坐金鞍調白羽,紛紛射殺五單于。

MFC 使用MFC建立視窗

標頭檔案 mfc是乙個封裝了windowsapi且物件導向的c 類庫,同時也是乙個應用程式的框架結構。另外,並非所有mfc提供的函式都是類的成員,mfc也以 全域性函式的形式,為使用者提供了各類字首為afx的函式,可供使用者在必要時隨時隨地進行呼叫。由mfc建立的應用,我們不能夠直接看到其程式的入口...

MFC視窗建立過程

本文針對單文件模式的mfc程式進行分析。一步步說明,如何建立視窗並顯示。首先我們建立乙個單文件的mfc程式 test。csingledoctemplate pdoctemplate pdoctemplate new csingledoctemplate idr mainframe,runtime c...

MFC視窗的建立

新建乙個空的win32 project 我的編譯器版本vs2013 在新增項中選擇空專案 工程建立完成後,在標頭檔案與原始檔的資料夾中分別新增乙個乙個.h檔案與.cpp檔案起名為mfc.h與mfc.cpp 自擬 在標頭檔案中分別建立應用程式類與視窗架構類,如下 include mfc標頭檔案 cla...