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

MFC算法概述

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

莊鴻昌

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

關(guān)鍵詞:MFC;C++;C語言;面向?qū)ο蟪绦蛟O(shè)計

1 MFC類

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

1.1 根類

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

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

1.2 應(yīng)用程序體系結(jié)構(gòu)類

該類用于構(gòu)造應(yīng)用程序框架的結(jié)構(gòu),一般用來填充框架,添加應(yīng)用程序。提供通用功能大多數(shù)應(yīng)用程序,通常情況下,通過派生類從體系結(jié)構(gòu)型類,將新成員添加或重寫現(xiàn)有成員函數(shù)執(zhí)行此操作。命令相關(guān)類、線程基類、窗口應(yīng)用程序類都屬于應(yīng)用程序體系結(jié)構(gòu)類。

1.3 MFC常用的類

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

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

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

S1+=s2;

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

CFile file; //建立文件對象

Char *pbuf =Null; //定義數(shù)據(jù)緩沖區(qū)指針

UINT ulen =0; //定義變量存儲讀取的內(nèi)容字節(jié)數(shù)

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

{

//打開文件成功

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

Pubf=new char[ulen]; //定義一個動態(tài)緩沖區(qū),和文件長度相同

File.Read(buf,ulen); //把文件內(nèi)容讀入數(shù)據(jù)緩沖區(qū)

File.Close(); //關(guān)閉文件

}

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

2 MFC的應(yīng)用程序框架

目前在計算機(jī)軟件領(lǐng)域,很多的程序框架已經(jīng)逐步地被開發(fā)出來,有的用于編寫單機(jī)程序,有的適合網(wǎng)絡(luò)應(yīng)用,有的針對游戲編程等。

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

3 MFC的消息映射與處理

如何在應(yīng)用程序中添加消息映射呢?首先選擇一個類的派生類,再為這個類添加消息處理成員函數(shù),消息映射以宏定義的代碼實現(xiàn)。可以使用類向?qū)lass Wizard工具來進(jìn)行消息管理,如添加、刪除消息或命令的響應(yīng)函數(shù),還可以添加消息映射代碼實現(xiàn)。

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

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

參考文獻(xiàn):

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

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

主站蜘蛛池模板: 国产精品久久久精品三级| 国产精品成| 日韩毛片免费| a级毛片免费看| 一级不卡毛片| 亚洲区第一页| 国产丝袜无码精品| 亚洲美女一级毛片| 亚洲欧美精品一中文字幕| 第一区免费在线观看| 国产精品视频公开费视频| 99久久亚洲综合精品TS| 欧美日韩国产精品综合| 国产精品嫩草影院视频| 国产精品女在线观看| 玖玖精品在线| 亚洲AV免费一区二区三区| 99伊人精品| 精品视频免费在线| 亚洲精品福利视频| 久热这里只有精品6| 综合五月天网| 在线精品亚洲国产| 九色在线视频导航91| 亚洲国产精品日韩欧美一区| 日本精品视频| 成人一级免费视频| 在线视频一区二区三区不卡| 性色一区| 亚洲清纯自偷自拍另类专区| 亚洲一区二区在线无码| 国产第一福利影院| 午夜国产精品视频黄| 国产成人夜色91| 国产乱码精品一区二区三区中文| 午夜一级做a爰片久久毛片| 全部免费特黄特色大片视频| 在线观看免费AV网| 亚洲成人精品久久| 日韩免费毛片| 中国一级毛片免费观看| 国产在线98福利播放视频免费| 天堂中文在线资源| 国产激情无码一区二区三区免费| 尤物视频一区| 国产欧美在线观看一区 | 亚洲五月激情网| 日韩精品一区二区三区大桥未久| 成年看免费观看视频拍拍| 亚洲天堂精品视频| 久久九九热视频| 国产一区二区精品福利| 久久黄色影院| 久久性妇女精品免费| 国产成人盗摄精品| 欧美精品高清| 亚洲自偷自拍另类小说| 免费看美女自慰的网站| 亚洲婷婷丁香| 日本道中文字幕久久一区| 亚洲人成影院在线观看| 国产在线拍偷自揄观看视频网站| 国产精品视频3p| 亚洲中文字幕23页在线| 久久国产精品嫖妓| 无码一区中文字幕| 亚洲欧美日韩中文字幕在线一区| 在线亚洲精品自拍| 国产 日韩 欧美 第二页| 精品视频福利| 国产成人综合亚洲欧美在| 欧美中文字幕在线视频| 国产精品福利一区二区久久| 亚洲AV无码久久精品色欲| 国产在线一区视频| 欧美成人怡春院在线激情| 精品国产一区91在线| 无码一区18禁| 无码国内精品人妻少妇蜜桃视频| 亚洲综合天堂网| 亚洲视频免费在线看| 无码在线激情片|