999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

MFC算法概述

2017-05-05 01:16:32莊鴻昌
藝術科技 2016年11期

莊鴻昌

摘 要:MFC是微軟基礎類庫的縮寫(Microsoft Foundation Classes library),包含了用來開發C++程序和Windows程序的基礎類,MFC提供了大量的工具類,可以提高程序員的編程效率,如簡單數據類、文件服務類、集合類、Internet工具類等。大部分Windows應用程序框架來源于MFC,定義了應用程序的結構,實現了應用程序的公共部分,封裝了大部分的Windws API函數,降低了編程難度,大大地提高了應用程序的開發速度和質量。本文著重對MFC類、MFC的應用框架和MFC的消息映射與處理三個方面來分析。

關鍵詞:MFC;C++;C語言;面向對象程序設計

1 MFC類

類的構成。MFC庫中的類按層次關系可分為根類(COjbect)、應用程序結構體類、窗口對話框和控件類等很多常用的類。下面簡單介紹幾種類:

1.1 根類

CObject類是MFC的抽象基類,是MFC中大多數類的根類,它提供了許多編程所需的公共操作,例如,對象的建立和刪除、串行劃支持、對象診斷輸出、運行時信息以及集合類的兼容等。

CObject類有三種特性,對運行時類信息的支持,確定對象是否屬于某一特定的類,運行時的類型信息機制允許程序檢索對象的類名及其他信息。對序列化的支持,從文件中讀取對象或把對象存入文件的過程。串行化的支持層,串行化是對象本身往返于介質的一個存儲過程。

1.2 應用程序體系結構類

該類用于構造應用程序框架的結構,一般用來填充框架,添加應用程序。提供通用功能大多數應用程序,通常情況下,通過派生類從體系結構型類,將新成員添加或重寫現有成員函數執行此操作。命令相關類、線程基類、窗口應用程序類都屬于應用程序體系結構類。

1.3 MFC常用的類

CString(字符串類),封裝了字符串操作的大部分功能,使用起來非常方便,可以用如下方法定義并使用CString類:

CString s1(“Hello”),s2; //定義兩個字符串對象s1,s2

S2.Format(“C++ %d.”,100) //s2按格式生成字符串(類似于printf函數)

S1+=s2;

CFile類(文件類),封裝了文件操作的基本功能,適合于文件的二進制讀寫,如下代碼實現文件讀操作:

CFile file; //建立文件對象

Char *pbuf =Null; //定義數據緩沖區指針

UINT ulen =0; //定義變量存儲讀取的內容字節數

If(file.open(“C:\\test.txt”,CFile::madeRead)) //用讀方式打開文件

{

//打開文件成功

Ulen=file.GetLength(); //得到文件長度

Pubf=new char[ulen]; //定義一個動態緩沖區,和文件長度相同

File.Read(buf,ulen); //把文件內容讀入數據緩沖區

File.Close(); //關閉文件

}

CArchive(存檔類),是一個高級的文件類,在基本數據類型和自定義類的對象中,它能實現能面向文件進行輸入和輸出操作,能夠讀寫字符串,然而CObject類本身具有序列化能力,可以實現派生類對象的文件I/O。

2 MFC的應用程序框架

目前在計算機軟件領域,很多的程序框架已經逐步地被開發出來,有的用于編寫單機程序,有的適合網絡應用,有的針對游戲編程等。

MFC程序框架充分利用了C++語言中虛函數與多態的功能特性,首先定義好了一些常用的基類,然后用這些類的對象指針構建程序框架,并且這些類中聲明了許多虛函數,在框架中的關鍵位置利用對象指針調用這些函數。我們在編程的時候需要繼承這些基類,為派生類添加新的代碼,根據需要編寫基類提供的虛函數,接著把應用程序框架中的基類指針替換成派生類指針即可。

3 MFC的消息映射與處理

如何在應用程序中添加消息映射呢?首先選擇一個類的派生類,再為這個類添加消息處理成員函數,消息映射以宏定義的代碼實現。可以使用類向導Class Wizard工具來進行消息管理,如添加、刪除消息或命令的響應函數,還可以添加消息映射代碼實現。

下面介紹利用Class Wizard在程序中添加鼠標左鍵按下時的窗口消息處理函數的基本方法。第一步,運行VC++程序,新建EX11-2項目,啟動Class Wizard。第二步,在Class name的組合框中選擇CEX11-2View類,Object IDs的對象列表頁隨之改變,列出類名和能提供消息界面對象的ID。第三步,因為目的是在視圖窗口單擊鼠標并響應消息,所以在Object IDs列表中選擇CEX11-2View,Messages列表中列出了該類能夠響應的窗口消息和可以重寫的虛函數,在其中找到并選擇中WM-LBUTTONDOWN。第四步,可以看到Add Function 由原來的禁用狀態變為可用狀態,單擊此按鈕,或者雙擊WM-LBUTTONDOWN消息,在CEX11-2View類中就會添加一個消息響應函數OnLButtonDown(),在Member functions 成員函數列表中會添加對應的項目。第五步,單擊OK按鈕,完成消息響應函數的添加過程。

在這里,我們只對MFC算法做一個大體的分析和表達。隨著科技和各種電子產品的更新。MFC技術也在飛速的發展。十幾年的雄厚技術已經奠定了MFC的生存基礎。它被設計成可移植于眾多的平臺,允許其應用程序適用于多種不同平臺。對于多種編譯器,MFC也是可以移植的,而且有許多軟件開發公司已經把它作為一種基于Windows開發標準的應用程序框架。而我們需要深入學習MFC的知識。實現自我價值。獲得更高能力。

參考文獻:

[1] Scott Meyer . Effective C++ 改善程序設計的具體55個做法(第2版)[M].侯捷,譯.北京:電子工業出版社,2007.

[2] Scott Meyer. Effective C++ 35個改善編程與設計的有效方法(第3版)[M].侯捷,譯.北京:電子工業出版社,2014.

主站蜘蛛池模板: 久久性妇女精品免费| 99精品视频播放| 另类综合视频| 在线看免费无码av天堂的| 欧美日本在线观看| 亚洲日本中文综合在线| 国产亚洲精品91| 欧美国产在线精品17p| 欧美成人看片一区二区三区| 亚洲最大在线观看| 国产黑丝一区| 国产高清又黄又嫩的免费视频网站| 国内视频精品| 国产色伊人| 天天综合网在线| 亚洲综合18p| 亚洲精品视频在线观看视频| 伊人国产无码高清视频| 国产人成在线观看| 国产精品视频猛进猛出| 欧美日本激情| 午夜爽爽视频| 国产午夜无码专区喷水| 国产va免费精品| 国产一二三区视频| 在线观看免费国产| 无码专区国产精品第一页| 亚洲浓毛av| 国产成人综合亚洲网址| 国产av剧情无码精品色午夜| 中文字幕亚洲精品2页| 思思热精品在线8| 国产在线观看91精品| 激情六月丁香婷婷四房播| 97在线免费视频| 国产污视频在线观看| 久久先锋资源| 国产福利微拍精品一区二区| 国产91精品久久| 亚洲丝袜第一页| 中国毛片网| 欧美激情视频二区三区| 美女视频黄又黄又免费高清| 精品少妇人妻无码久久| 欧美福利在线| 亚洲欧洲综合| 久久伊人操| 99视频在线免费看| 麻豆AV网站免费进入| 国产白浆在线观看| 欧美日韩在线亚洲国产人| 四虎永久免费网站| 人妻丰满熟妇AV无码区| 新SSS无码手机在线观看| 91精品国产麻豆国产自产在线| 亚洲无卡视频| 国产在线精品99一区不卡| 欧美精品影院| 99视频在线观看免费| 成人免费午夜视频| 一级片免费网站| 日韩在线永久免费播放| 亚洲视频免费在线看| 久久综合AV免费观看| 亚洲精品久综合蜜| 国产美女免费| 国产综合在线观看视频| 色首页AV在线| 久久福利片| 国产69精品久久久久妇女| 国产免费久久精品99re不卡| 中字无码av在线电影| 亚洲A∨无码精品午夜在线观看| 国产一区二区三区夜色| 日韩一区精品视频一区二区| 亚洲AV色香蕉一区二区| 亚洲人成成无码网WWW| 久久国产精品电影| 国产91丝袜在线播放动漫| 日韩精品无码免费一区二区三区 | 国产国产人成免费视频77777| 99福利视频导航|