WINDOW程序設(shè)計(jì)第3章
單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,*,*,第,3,章 開發(fā),Windows,應(yīng)用程序的技術(shù)基礎(chǔ),本章主要目的是向讀者介紹編寫,Windows,應(yīng)用程序所采用的基本技術(shù),約定和慣例,,API,的結(jié)構(gòu)與基本用法等作了介紹,對(duì),Windows,應(yīng)用程序的各個(gè)組成部分也作了初步介紹,并用框圖的形式介紹,Windows,應(yīng)用程序的工作原理,3.1,應(yīng)用程序的結(jié)構(gòu)與編譯,解決多任務(wù)的關(guān)鍵是,:,控制核心應(yīng)該從程序本身轉(zhuǎn)移到,Windows,操作系統(tǒng)。應(yīng)該由,Windows,操作系統(tǒng)決定那個(gè)應(yīng)用程序可以占用,CPU,時(shí)間,程序的結(jié)構(gòu)也不再是過程式程序中的賦值、循環(huán)、分支等,C,語(yǔ)言中常見的結(jié)構(gòu),而是消息,處理。為了解決這個(gè)問題,應(yīng)用程序采用一種稱為”事件驅(qū)動(dòng)結(jié)構(gòu)”是合適的。所謂非搶占式是指一旦這個(gè)應(yīng)用程序取得了執(zhí)行權(quán),就一直要把這個(gè)程序執(zhí)行下去,除非遇到新的消息來(lái)干預(yù)。否則,其他程序沒有辦法執(zhí)行。如果把非搶占式和”事件驅(qū)動(dòng)結(jié)構(gòu)相結(jié)合,那就是,Win16,操作系統(tǒng)下的應(yīng)用程序。,3.1.1 Windows,應(yīng)用程序的結(jié)構(gòu)和,C,語(yǔ)言程序結(jié)構(gòu)的比較,請(qǐng)見,Windows,應(yīng)用程序的結(jié)構(gòu)和,C,語(yǔ)言程序結(jié)構(gòu)的比較,C,語(yǔ)言程序的主體結(jié)構(gòu)是,Main(),定義函數(shù),1,定義函數(shù),2,。,定義函數(shù),n,C,語(yǔ)言程序的主體結(jié)構(gòu)是主函數(shù),Main,和一些函數(shù)定義所組成。,而,Windows,應(yīng)用程序的結(jié)構(gòu)可以用下面的框圖來(lái)表示。,WinMain,Windows Function,圖,3-1,Windows,應(yīng)用程序的結(jié)構(gòu)有兩個(gè)函數(shù)所組成,一個(gè)是,WinMain,函數(shù),另一個(gè)稱為窗口函數(shù),又稱窗口消息處理程序。,3.1.2 Windows,應(yīng)用程序的編譯和,C,語(yǔ)言程序編譯的比較,C,語(yǔ)言的編譯圖示,(,請(qǐng)見,教材程序,3C,語(yǔ)言的編譯用圖表示如下,.doc,Windows,應(yīng)用程序編譯圖示,(,請(qǐng)見,教材程序,3Windows,應(yīng)用程序編譯系統(tǒng),.doc,).,Windows,應(yīng)用程序編譯系統(tǒng)工作步驟(請(qǐng)見,教材程序,3,編譯系統(tǒng)的工作過程,.doc,),。,編譯應(yīng)用程序所需的六個(gè)基本文件,什么資源文件與資源描述文件,(.RC),?在編譯中的作用?,模塊定義文件,(.DEF),的結(jié)構(gòu),(,請(qǐng)見,教材程序,3,模塊定義文件,.doc,),和在編譯中的作用?,頭文件,(.H),的作用?,WINDOWS.H,頭文件,(,請(qǐng)見,教材程序,3WINDOWS.H,頭文件,.doc,),。,WINDEF.H,頭文件,(,請(qǐng)見,教材程序,3WINDEF.,頭文件,.doc,),。,項(xiàng)目文件,(.MAKE),在編譯中的作用?,3.2 Windows,應(yīng)用程序設(shè)計(jì)接口,(API),學(xué)習(xí),API,的重要性。,簡(jiǎn)要介紹兩種,API,。,每個(gè),API,主要有哪三個(gè)文件,(,請(qǐng)見,教材程序,3,三個(gè)核心,API,組件,.doc,),。,每個(gè)文件的作用。,3.3,標(biāo)識(shí)符的匈牙利命名慣例,為什么此慣例稱為匈牙利命名慣例。,匈牙利命名慣例的兩條約定。,要熟悉很多習(xí)慣用法。例如,WPARAM,和,LPARAM,是習(xí)慣用法。,按照,匈牙利命名慣例,常用變量的字首,(,請(qǐng)見,教材程序,3,常用變量的字首,.doc,3.4,事件驅(qū)動(dòng)程序設(shè)計(jì),什么是,事件驅(qū)動(dòng)程序設(shè)計(jì),它與傳統(tǒng)程序設(shè)計(jì)有什么區(qū)別。,解釋圖,3-4,的工作原理(請(qǐng)見,教材程序,3,事件驅(qū)動(dòng)程序的工作原理,.doc,),。,消息與消息處理是實(shí)現(xiàn)事件驅(qū)動(dòng)的關(guān)鍵。,3.5,動(dòng)態(tài)鏈結(jié)和動(dòng)態(tài)鏈結(jié)庫(kù),靜態(tài)連接和動(dòng)態(tài)連接的基本概念。,如何進(jìn)行鏈結(jié)。,如何建立,DLL,文件請(qǐng)見其他有關(guān)文章和書籍。,3.6 PASCAL,與,WINAPI,調(diào)用規(guī)范,什么是,C,調(diào)用規(guī)范。,Win 16,中的,PASCAL,調(diào)用規(guī)范,(_,cdecl,),。,Win 32,中的,PASCAL,調(diào)用規(guī)范,(_,stdcall,),。,Win32,中的,WINAPI,調(diào)用規(guī)范,(_,stdcall,),。,比較,C,,,_,cdecl,,,_,stdcall,三種調(diào)用規(guī)范。,調(diào)用規(guī)范的同義詞,(,請(qǐng)見,教材程序,3,調(diào)用規(guī)范的同義詞,.doc,),。,3.7 Windows,應(yīng)用程序的工作原理,句柄與代號(hào),。,單一應(yīng)用程序情況下輸入消息的獲得與處理,(,請(qǐng)見,教材程序,3,單一應(yīng)用程序情況,.doc,),。,消息循環(huán)程序及其解釋,(,請(qǐng)見,教材程序,3,消息循環(huán),.doc,),。,應(yīng)用程序的結(jié)束,(,請(qǐng)見,教材程序,3,應(yīng)用程序的結(jié)束,.doc,),。,窗口類的作用及其用法初步,3.8,窗口類的作用及其用法初步,每個(gè),Windows,應(yīng)用程序,(,或進(jìn)程,),都要有一個(gè)窗口,每個(gè)窗口代表一個(gè)應(yīng)用程序。,窗口類結(jié)構(gòu)與窗口類是不同又有聯(lián)系的概念。,應(yīng)用程序建立窗口的大概過程。,練習(xí),3,1.,16,位和,32,位,Windows,操作系統(tǒng)對(duì)應(yīng)用程序的支持有什么不同,?,2.,Windows,應(yīng)用程序的編譯和,C,語(yǔ)言程序編譯有什么不同,?,3.,資源描述文件的作用是什么,?,資源編譯器的功能是什么,?,4.,資源文件與資源描述文件,(.RC),的區(qū)別?,5.,模塊定義文件,(.DEF),在編譯中的作用?,6.WINDOWS.H,頭文件的作用?,WINDEF.H,中定義了那些東西?,WINNT.H,頭文件的作用?,7.,項(xiàng)目文件的作用?,8.,簡(jiǎn)述,程序設(shè)計(jì)接口,(API),的組成情況,9.,講講,匈牙利命名慣例的約定,還要記住那些習(xí)慣用法?,10.,解釋事件驅(qū)動(dòng)程序的原理,并和過程式程序進(jìn)行比較,11.,何謂動(dòng)態(tài)連接?何謂靜態(tài)連接?動(dòng)態(tài)連接庫(kù)文件的后綴是什么?,12.,Win32,里,微軟設(shè)計(jì)者們又定義了一種新的調(diào)用規(guī)范,用什么符號(hào)表示?,13.,介紹,PASCAL,調(diào)用規(guī)范,,C,調(diào)用規(guī)范,(,用,_,cdecl,表示,),,,_,stdcall,調(diào)用規(guī)范,14.W32,中有那些識(shí)別字都定義成,_,stdcall,15.,消息循環(huán)從應(yīng)用程序消息隊(duì)列取得窗口消息是怎樣送給窗口消息處理程序,?,