VisualC輕松入門第10章Windows應(yīng)用程序介紹.ppt
《VisualC輕松入門第10章Windows應(yīng)用程序介紹.ppt》由會員分享,可在線閱讀,更多相關(guān)《VisualC輕松入門第10章Windows應(yīng)用程序介紹.ppt(25頁珍藏版)》請在裝配圖網(wǎng)上搜索。
第10章Windows應(yīng)用程序介紹,Windows是Microsoft公司的主打軟件產(chǎn)品,屬于操作系統(tǒng)的一種,而VisualC++6.0也是Microsoft公司的軟件產(chǎn)品,是當(dāng)今主流集成開發(fā)環(huán)境之一。由于都出自同一個公司,因此VisualC++6.0對基于Windows的應(yīng)用軟件具有很高的開發(fā)兼容性。特別是MFC類庫,它幾乎就是為Windows應(yīng)用軟件量身定做的一套類庫框架體系。本章介紹Windows應(yīng)用程序的類型,讓讀者能概要的了解Windows軟件的種類和特點,本章主要修行的要點如下。Windows應(yīng)用程序和MS-DOS風(fēng)格應(yīng)用程序:讀者將了解到Windows應(yīng)用程序和MS-DOS風(fēng)格應(yīng)用程序的聯(lián)系與區(qū)別。應(yīng)用程序的類型:讀者將了解到各種Windows應(yīng)用程序的類型,如Win32應(yīng)用程序、對話框應(yīng)用程序、動態(tài)鏈接庫、單文檔應(yīng)用程序(SDI)、多文檔應(yīng)用程序(MDI)。MFC應(yīng)用程序向?qū)У墓δ埽鹤x者將學(xué)會MFC應(yīng)用程序向?qū)е械乃泄δ?,讓讀者了解MFC應(yīng)用程序向?qū)o我們帶來怎么樣的應(yīng)用程序框架。,10.1Windows應(yīng)用程序和MS-DOS風(fēng)格應(yīng)用程序,Windows,顧名思義就是窗口,而后面有個“s”,也就是復(fù)數(shù),那么自然而然就是“多窗口”,但“Windows應(yīng)用程序”并不是多窗口應(yīng)用程序的意思,而是運行Windows操作系統(tǒng)上的應(yīng)用程序。Windows操作系統(tǒng)也是一個軟件,只是這個軟件地位比較高,是硬件和應(yīng)用軟件的承載體,稱之為“操作系統(tǒng)”,它負責(zé)為一般的應(yīng)用軟件分配CPU時間、分配內(nèi)存容量和內(nèi)存存放時間、分配硬件資源(如是否申請打印機、掃描儀、音響等),而這個操作系統(tǒng)“軟件”本身是多窗口的,也就是說你可以輕松地享受著柔和的mp3音樂,同時和親朋好友聊著QQ,并且還可以同時收看網(wǎng)絡(luò)電視體育臺的MBA賽事。事實上,這里的操作系統(tǒng)就實現(xiàn)了多道程序設(shè)計的設(shè)計理念,雖然CPU只有一個,而且在任意時間點時,CPU只能處理一個作業(yè),但CPU處理速度非???,所以可以將CPU的計劃時間段分成若干個“時間片段”,又稱之為“時間片”,假設(shè)CPU有計劃時間是1妙(1s),如果為完成當(dāng)前10個作業(yè)分成10個時間片,則某個時間片是0.1s,也就是每個作業(yè)可以分配0.1s的處理時間,執(zhí)行完一個時間片就馬上跳入到下個作業(yè)的處理。,10.2應(yīng)用程序的類型,應(yīng)用程序如果按照功能分,可以分為無數(shù)種,如企業(yè)財務(wù)系統(tǒng)、通信系統(tǒng)、人工智能和專家系統(tǒng)、印刷管理系統(tǒng)……。如果按照框架接口和界面分類,則方便地多,而且對于程序設(shè)計語言學(xué)習(xí)者來說,不可能面向業(yè)務(wù)去學(xué)具有具體業(yè)務(wù)流程的信息化項目開發(fā),因此,了解應(yīng)用程序類型是學(xué)習(xí)集成開發(fā)環(huán)境的重要基礎(chǔ)。,10.2.1應(yīng)用程序的類型簡介,應(yīng)用程序可以按照多種分類方式:按照業(yè)務(wù)類型分類、按照應(yīng)用領(lǐng)域分類、按照框架接口和界面分類等。本書并不是某個專業(yè)業(yè)務(wù)領(lǐng)域的書籍,著重讓讀者掌握VisualC++6.0集成開發(fā)環(huán)境和C++編程語言,因此,只需要讀者按照框架接口和界面分類來掌握各種程序設(shè)計即可。應(yīng)用程序按照框架接口和界面可以分為以下幾種類型:Win32應(yīng)用程序:Win32應(yīng)用程序原本是指運行在Windows操作系統(tǒng)32位計算機平臺上的應(yīng)用程序,當(dāng)然,其他幾個種類的應(yīng)用程序也是運行在這種環(huán)境下。狹義的Win32應(yīng)用程序是指不使用MFC類庫而直接使用Win32SDK編寫的應(yīng)用程序。對話框應(yīng)用程序:對話框應(yīng)用程序是MFC應(yīng)用程序的一個分支,它的特點是只有一個或多個對話框,而沒有文檔視圖結(jié)構(gòu)。動態(tài)鏈接庫:動態(tài)鏈接庫是Windows程序中常使用的組件,編寫Windows動態(tài)鏈接庫(WindowsDLL)可以讓多個程序共享相同功能的代碼。單文檔應(yīng)用程序(SDI):對話框應(yīng)用程序是MFC應(yīng)用程序的一個分支,它相對于對話框應(yīng)用程序具有單文檔視圖結(jié)構(gòu),并且可以生成對話框。多文檔應(yīng)用程序(MDI):對話框應(yīng)用程序是MFC應(yīng)用程序的一個分支,它相對于對話框應(yīng)用程序具有多個文檔視圖結(jié)構(gòu),也可以生成對話框。,10.2.2什么樣的程序是Win32應(yīng)用程序,在Windows1.0版本的時代,Windows本身的功能很少,并且Windows軟件非常少,如果單靠Microsoft公司自行開發(fā)軟件,顯然是不可取的,原因在于應(yīng)用軟件的需求各異,而且要求種類繁多,另外,有些應(yīng)用軟件比操作系統(tǒng)本身更復(fù)雜,如大型的數(shù)據(jù)庫系統(tǒng)等。聰明的Microsoft公司的智囊們當(dāng)然不會選擇自己開發(fā)應(yīng)用軟件。如果將應(yīng)用軟件集成到操作系統(tǒng)中如何?顯然,這樣更不可取,這樣的操作系統(tǒng)非常龐大,大到幾百GB的硬盤都可能放不下,因此,到目前為止,我們使用的WindowsXP或WindowsVista操作系統(tǒng)雖然有自帶的應(yīng)用軟件,如計算器、文檔編輯器、畫圖工具等,但這些軟件都小之又小,簡單得不能再簡單。操作系統(tǒng)一般有兩種接口:一個是鍵盤鼠標操作接口,一個是應(yīng)用程序接口。前者是為系統(tǒng)使用的用戶提供操作計算機的接口,后者是為程序設(shè)計人員操作計算機而提供的接口。同樣的道理,為了讓其他軟件公司能在Windows環(huán)境下編程,Microsoft公司也提供了Windows應(yīng)用程序接口,實際上,這些接口就是一千多個函數(shù)集合,只要軟件公司具有一個與Windows操作系統(tǒng)兼容的編譯器,并熟練掌握這一千多個函數(shù)就可以在Windows環(huán)境下進行任意應(yīng)用軟件的開發(fā)。,10.3認識打印“Hello,world!”字符串的Win32應(yīng)用程序,【本節(jié)示例參考:\源代碼\C10\myWin32】使用VisualC++6.0來創(chuàng)建Win32應(yīng)用程序比較簡單,在向?qū)е锌蓜?chuàng)建3種Win32應(yīng)用程序:空項目、簡單的Win32應(yīng)用程序和打印“Hello,world!”字符串的程序。本節(jié)主要了解這3種程序的組成和效果。,10.3.1創(chuàng)建打印“Hello,world!”字符串的程序,本案例將創(chuàng)建一個打印“Hello,world!”字符串的程序,具體的操作步驟如下所示。,10.3.2分析Win32應(yīng)用程序的必要結(jié)構(gòu),讀者可以打開“myWin32”項目的“myWin32.cpp”源文件,可以看出,Win32應(yīng)用程序中,主要是3個必要的函數(shù):1.intWINAPIWinMain(HINSTANCEhinstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnCmdShow),該函數(shù)是Win32應(yīng)用程序入口的主函數(shù)。2.HWNDCreateWindowEx()。該函數(shù)用于創(chuàng)建窗體。當(dāng)然,這不同于MFC,窗口讓開發(fā)者作出選擇。該窗口的創(chuàng)建參數(shù)根據(jù)開發(fā)者的需要進行參數(shù)初始化。3.LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam)。正如前文所述,創(chuàng)建好初始化的窗口后,需要有函數(shù)來進行判斷當(dāng)前系統(tǒng)或用戶程序產(chǎn)生的消息。這個函數(shù)的功能正是如此。這個函數(shù)的“內(nèi)在結(jié)構(gòu)”非常簡單,就是一個開關(guān)語句(Switch),針對不同的消息類型,進入不同的處理段。,10.3.3分析Win32應(yīng)用程序中函數(shù)的關(guān)系和互動,Win32應(yīng)用程序中那么多函數(shù),它們之間是怎么相互協(xié)調(diào)工作的呢?在這里,不能僅僅將它們看作是“函數(shù)與函數(shù)之間的內(nèi)部關(guān)系”,而應(yīng)該將它們看做是它們之間的內(nèi)部關(guān)系以及它們與操作系統(tǒng)的關(guān)系之和。Microsoft公司將Win32應(yīng)用程序開發(fā)接口定義為面向過程并基于消息的,也就是按照操作系統(tǒng)作業(yè)排序的思想,將外界以及操作系統(tǒng)本身對應(yīng)用程序產(chǎn)生的消息進行加權(quán)排序,形成消息隊列,并在應(yīng)用程序體進行循環(huán)監(jiān)聽。對于滿足處理條件的消息進行及時的處理,對于不滿足條件的消息進行排隊等待,它們之間的關(guān)系如圖10.7所示。,10.3.4更改Win32程序的默認代碼實現(xiàn)自己的功能,在Win32程序中處理消息隊列的函數(shù)就是“窗口函數(shù)”WndProc(),如代碼示例10.1所示,窗口函數(shù)是負責(zé)分類處理各種消息的函數(shù),如菜單命令消息、鼠標鍵盤消息等。,10.3.5創(chuàng)建空項目和簡單的Win32應(yīng)用程序,如果創(chuàng)建Win32程序時選擇的類型為“Anemptyproject”,則開發(fā)工作區(qū)如圖10.12所示。該項目是空項目,因此沒有任何源文件、頭文件或資源文件,如果有,則在對應(yīng)的文件夾左邊有個“+”或“-”符號,如圖10.12所示。如果在創(chuàng)建Win32程序時選擇的是“AsimpleWin32application”,則將出現(xiàn)如圖10.13所示的工作界面。,10.4創(chuàng)建Win32Console應(yīng)用程序,Win32Console應(yīng)用程序一般稱為控制臺應(yīng)用程序,界面和DOS類似。因為沒有常見的一些功能性界面,所以初學(xué)者應(yīng)用起來比較簡單,就是倆功能:輸入、輸出?!颈竟?jié)示例參考:\源代碼\C10\myWin32Console】,10.4.1創(chuàng)建Win32控制臺應(yīng)用程序,前面學(xué)習(xí)了Win32應(yīng)用程序,現(xiàn)在學(xué)習(xí)Win32Console應(yīng)用程序,它是Win32控制臺應(yīng)用程序,創(chuàng)建步驟如下:,10.4.2分析Win32控制臺應(yīng)用程序的代碼和必要組成,“A“Hello,world”application”應(yīng)用程序的代碼比較簡單,只是用C語言風(fēng)格的printf語句打印“Hello,world!”字符串,如代碼示例10.3所示。,10.5對話框應(yīng)用程序,【本節(jié)示例參考:\源代碼\C10\MFCDialog】對話框應(yīng)用程序可以由Win32應(yīng)用程序向?qū)?chuàng)建,也可以由MFC應(yīng)用程序創(chuàng)建,但使用MFC更簡單,因此本書的對話框都是基于MFC庫的。,10.5.1創(chuàng)建對話框MFC應(yīng)用程序,創(chuàng)建對話框MFC應(yīng)用程序的步驟如下:,10.5.2分析對話框MFC應(yīng)用程序的代碼,基于對話框應(yīng)用程序的代碼與以往學(xué)習(xí)的單純的C++代碼不同,和Win32應(yīng)用程序類似,框架是代碼生成的,但對話框是資源,由資源編輯器進行編輯,最后才由連接器將資源和源代碼編譯的結(jié)果連接起來。雖然兩者好像互不相干,但在應(yīng)用程序運行時,需要對話框上面的各種編輯框和源代碼中的變量值進行交互,而且這種交互是非常頻繁的。因此注定了要在源代碼中指定關(guān)聯(lián)的資源,該對話框應(yīng)用程序的對話框類代碼,如代碼示例10.5所示。,10.6動態(tài)鏈接庫,【本節(jié)示例參考:\源代碼\C10\MFCDLL】動態(tài)鏈接庫在Windows系統(tǒng)中很常見,讀者只要找到對應(yīng)操作系統(tǒng)的system32文件夾就可以發(fā)現(xiàn)有大量的以“.dll”為后綴的文件,這些文件就是動態(tài)鏈接庫文件。,10.6.1動態(tài)鏈接庫的優(yōu)點和缺點,動態(tài)鏈接庫可以提供給應(yīng)用程序或操作系統(tǒng)一些編譯過的二進制功能代碼,例如說執(zhí)行某個功能的函數(shù)、調(diào)用某些程序的中介代碼,下面介紹使用動態(tài)鏈接庫的優(yōu)點??梢詼p小應(yīng)用程序的容量。一般而言,如果應(yīng)用程序不調(diào)用任何動態(tài)鏈接庫文件,則需要自己實現(xiàn)全部的功能邏輯,這樣,代碼自然就比部分功能調(diào)用動態(tài)鏈接庫要多。減小操作系統(tǒng)的負擔(dān),如動態(tài)鏈接庫某個函數(shù)功能被100個應(yīng)用程序所調(diào)用,那么,操作系統(tǒng)實際只需要管理動態(tài)鏈接庫一個版本即可。反之,如果這100個應(yīng)用程序各自實現(xiàn)自己的該函數(shù)功能,則操作系統(tǒng)負擔(dān)將大大增加。當(dāng)然,沒有什么事物是只有優(yōu)點沒有缺點的,使用動態(tài)鏈接庫也會有缺點,就是如果某軟件需要調(diào)用的動態(tài)鏈接庫損壞或丟失,將可以導(dǎo)致該軟件啟動失敗,或該軟件執(zhí)行不了部分功能,從這一方面來說,削弱了軟件的健壯性。,10.6.2創(chuàng)建具有兩個數(shù)相乘的函數(shù)動態(tài)鏈接庫,本節(jié)將創(chuàng)建具有兩個數(shù)相乘的函數(shù)動態(tài)鏈接庫文件,并在VBScript中調(diào)用這個文件,使用兩個數(shù)相乘的功能,創(chuàng)建動態(tài)鏈接庫的步驟如下:,10.7單文檔應(yīng)用程序(SDI),【本節(jié)示例參考:\源代碼\C10\MFCSingleDoc】本書中的范例出現(xiàn)最多的將會是單文檔應(yīng)用程序了。本書所說的單文檔應(yīng)用程序是指由MFC類庫框架生成的單文檔應(yīng)用程序,單文檔應(yīng)用程序的創(chuàng)建過程如下:,10.8多文檔應(yīng)用程序(MDI),【本小節(jié)示例參考:\源代碼\C10\MFCMutiD】多文檔應(yīng)用程序是單文檔應(yīng)用程序的擴展,即一個應(yīng)用程序有多個文檔類。創(chuàng)建多文檔應(yīng)用程序步的驟如下:,10.9MFC應(yīng)用程序向?qū)У墓δ?【本節(jié)示例參考:\源代碼\C10\myMFC】MFC是學(xué)習(xí)VisualC++的最重要是學(xué)習(xí)類庫框架,而MFC應(yīng)用程序向?qū)⒔o開發(fā)者帶來快速創(chuàng)建某特定應(yīng)用方向的程序系統(tǒng)。因此,了解MFC應(yīng)用程序向?qū)Э梢詭椭x者少走彎路,直接創(chuàng)建具備各種基本功能的應(yīng)用程序框架,而需要具體的功能實現(xiàn),再在已生成的應(yīng)用程序框架中添加自定義的功能代碼。本節(jié)以單文檔應(yīng)用程序為例,從使用應(yīng)用程序向?qū)碇v解應(yīng)用程序向?qū)У墓δ?,?chuàng)建一個應(yīng)用程序的步驟如下:,10.10小結(jié),本章概要性地介紹了Windows應(yīng)用程序和MS-DOS應(yīng)用程序的區(qū)別,并詳細地介紹了Windows應(yīng)用程序的種類和特點,還介紹了MFC應(yīng)用程序向?qū)Э梢酝瓿傻墓δ?。通過本章的學(xué)習(xí),讀者應(yīng)該掌握的內(nèi)容如下:理解Windows應(yīng)用程序和MS-DOS風(fēng)格應(yīng)用程序的聯(lián)系與區(qū)別。了解各種Windows應(yīng)用程序的類型,如Win32應(yīng)用程序、對話框應(yīng)用程序、動態(tài)鏈接庫、單文檔應(yīng)用程序(SDI)、多文檔應(yīng)用程序(MDI),并掌握它們的特點和相互之間的區(qū)別與聯(lián)系。掌握MFC應(yīng)用程序向?qū)е械乃泄δ?,了解MFC應(yīng)用程序向?qū)Э赡芙o我們帶來怎樣的應(yīng)用程序框架。,本章習(xí)題,一、填空題1.MFC應(yīng)用程序主要有3種類型:________________、________________和________________。2.VisualC++6.0可以編譯的語言有:________________和________________。二、選擇題1.在以下說法中,正確的是()。A.VisualC++6.0可以編譯JAVA程序設(shè)計語言。B.VisualC++6.0只是一個編譯器。C.MFC是類庫。D.VisualC++6.0是微軟公司的Visualstdio集成開發(fā)環(huán)境的最高版本。2.在以下說法中,正確的是()。A.自然語言能夠描述的,C++就可以描述。B.C++可以描述的,自然語言就能夠描述。C.只要是VisualC++6.0編譯通過的C++代碼就必定是正確的代碼。D.VisualC++6.0可以檢驗C++程序設(shè)計中所有的錯誤。,- 1.請仔細閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- VisualC 輕松 門第 10 Windows 應(yīng)用程序 介紹
鏈接地址:http://kudomayuko.com/p-3220658.html