




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Windows是一個多任務(wù)的操作系統(tǒng),也就是說,在Windows中允許多個應(yīng)用程序同時運行。在Windows操作系統(tǒng)上運行的應(yīng)用程序叫做Windows應(yīng)用程序。Windows應(yīng)用程序的進行是依靠外部發(fā)生的事件來驅(qū)動。程序不斷等待,等待任何可能的輸入,進行判斷后再做適當(dāng)?shù)奶幚?。下面對Windows編程的基本知識進行詳細介紹。
Windows界面組成2.1
Windows應(yīng)用程序的數(shù)據(jù)類型2.2Windows應(yīng)用程序結(jié)構(gòu)2.3Windows編程實例2.42.1Windows界面組成
1.窗口
2.邊框
3.標題欄
4.系統(tǒng)菜單
5.菜單欄
6.工具欄7.客戶區(qū)8.狀態(tài)欄9.圖標10.垂直滾動條和水平滾動條
圖2.1窗口
圖2.1窗口2.2Windows應(yīng)用程序的數(shù)據(jù)類型
數(shù)據(jù)類型是對數(shù)據(jù)的一種抽象描述。在計算機程序中能操作的數(shù)據(jù)有很多種,不同的數(shù)據(jù)所需要的存儲空間有所不同。將數(shù)據(jù)按照類型進行分類,有助于程序員對于存儲空間的分配。2.2.1基本數(shù)據(jù)類型
在Windows應(yīng)用程序中,為了提高應(yīng)用程序的可讀性,Windows為許多基本數(shù)據(jù)數(shù)定義了別名,例如:
typedefunsignedlongDWORD;typedefintBOOL;typedefunsignedcharBYTE;typedeffloatFLOAT;typedetunsignedintUINT;
另外,Windows應(yīng)用程序還提供了一些結(jié)構(gòu)類型的數(shù)據(jù),例如:typedefstructtagMSG{HWNDhwnd;UINTmessage;WPARAMwParam;LPARAMlParam;DWORDtime;POINTpt;}MSG;2.2.2特殊數(shù)據(jù)類型
在Windows應(yīng)用程序中,存在著許多復(fù)雜的程序?qū)ο蠛蛯嵗绱翱?、字體、滾動條等。為了在程序中區(qū)別這些復(fù)雜的程序?qū)ο蠛蛯嵗?,Windows對它們進行了標識。這種有別于普通變量的標識稱為句柄。
2.3Windows應(yīng)用程序結(jié)構(gòu)
一般情況下,一個Windows應(yīng)用程序由頭文件、源文件、動態(tài)鏈接庫和資源等幾部分組成。但在這幾個組成部分中,開發(fā)人員的主要工作是對源文件進行編寫。下面對Windows應(yīng)用程序的源文件進行介紹。2.3.1WinMain函數(shù)
在傳統(tǒng)的DOS程序中,main()函數(shù)是程序的入口點,而在Windows應(yīng)用程序中,WinMain()函數(shù)成為了程序的入口點。當(dāng)Windows操作系統(tǒng)啟動一個程序時,調(diào)用的就是該程序所對應(yīng)的WinMain()函數(shù)。當(dāng)Winmain()函數(shù)結(jié)束或返回時,Windows應(yīng)用程序結(jié)束。
WinMain()函數(shù)的原型如下:intWINAPIWinMain(HINSTANCEhThisInst,HINSTANCehPrevInst,LPSTRlpszCmdLine,IntnCmdShow,)
WinMain()函數(shù)的主要作用是創(chuàng)建應(yīng)用程序窗口并建立消息循環(huán)。在該函數(shù)完成此項工作的過程中,經(jīng)過了5個步驟:設(shè)計窗口類型、注冊窗口類型、創(chuàng)建窗口、顯示窗口和消息循環(huán)。1.設(shè)計窗口類型
在創(chuàng)建應(yīng)用程序窗口之前,需要對窗口的屬性進行相應(yīng)的設(shè)置,如窗口樣式、窗口圖樣、窗口光標等。在Windows中,需要在WNDCLASS結(jié)構(gòu)中對窗口的屬性進行設(shè)置,該結(jié)構(gòu)的原型如下:
typedefstruct_WNDCLASS{UINTstyle;WNDPROClpfnWndProc;intcbClsExtra;intcbWndExtra;HINSTANCEhInstance;HICONhIcon;HCURSORhCursor;HBRUSHhbrBackground;LPCTSTRlpszMenuName;LPCTSTRlpszClassName;}WNDCLASS;2.注冊窗口類型
對窗口類型進行設(shè)計后,需要進行注冊。對窗口進行注冊就是將設(shè)計好的窗口類型向系統(tǒng)進行登記。注冊窗口類型時需調(diào)用RegisterClass()函數(shù),該函數(shù)的原型如下:
BOOLRegisterClass(WNDCLASSA&wc);3.創(chuàng)建窗口
創(chuàng)建窗口時,需要調(diào)用API函數(shù)CreateWindow()函數(shù),該函數(shù)的原型如下:
HWNDCreateWindow(LPCTSTRlpClassName,LPCTSTRlpWindowName,DWORDdwStyle,intx,inty,intnWidth,intnHeight,HWNDhWndParent,HMENUhMenu,HANDLEhInstance,LPVOIDlpParam);4.顯示窗口
調(diào)用ShowWindow()函數(shù)可以顯示窗口,該函數(shù)的原型如下:
BOOLShowWindow(HWNDhWnd,intnCmdShow);
在顯示窗口后,需要對窗口進行刷新操作。刷新窗口可以使用UpdateWindow()函數(shù),該函數(shù)的原型如下:
BOOLUpdateWindow(HWNDhWnd);5.消息循環(huán)
創(chuàng)建并顯示窗口后,應(yīng)用程序的初始化工作進入了消息循環(huán)這一階段。代碼如下:while(GetMessage(&msg,NULL,0,0)){TranslateMessage(&msg);DispatchMessage(&msg);}
Windows應(yīng)用程序可以接收各種輸入消息,如鍵盤、鼠標、計時器產(chǎn)生的消息或是由其他應(yīng)用程序傳遞過來的消息等。接收消息時使用的是GetMessage()函數(shù),該函數(shù)的原型如下:
BOOLGetMessage(LPMSGlpMsg,HWNDhWnd,UINTwMsgFilterMin,UINTwMsgFilterMax);
GetMessage()函數(shù)將獲取的消息復(fù)制到一個MSG結(jié)構(gòu)中。如果隊列中沒有任何消息,GetMessage()函數(shù)將一直空閑直到隊列中又有消息時再返回。
如果隊列中已有消息,它將取出一個后返回。
MSG結(jié)構(gòu)包含了一條Windows消息的完整信息,其定義如下:
HWNDhwnd;UINTmessage;WPARAMwParam;LPARAMlParam;DWORDtime;POINTpt;}MSG;2.3.2WndProc窗口函數(shù)
在WinMain()函數(shù)中創(chuàng)建窗口后,然后需要編寫一個窗口函數(shù),用于處理發(fā)送給窗口的消息。
這個窗口函數(shù)就是WndProc(),該函數(shù)的原型如下:LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwParam,LPARAMlParam);
WndProc()函數(shù)由一個或多個switch語句組成。每一條case語句對應(yīng)一種消息。當(dāng)應(yīng)用程序接收到一個消息時,相應(yīng)的case語句被激活。2.4Windows編程實例
本節(jié)將通過一個實例介紹Windows窗口的創(chuàng)建過程。當(dāng)程序創(chuàng)建后,會在客戶區(qū)輸出文本,并且當(dāng)鼠標單擊窗口的客戶區(qū)時,會發(fā)出聲音。圖2.3輸入工程名圖2.4選擇創(chuàng)建空工程圖2.5【NewProjectInformation】對話框圖2.6添加C++SourceFile圖2.7程序sample0201的運行結(jié)果圖2.8【ProjectSettings】對話框小結(jié)
本章主要介紹了Windows編程的基礎(chǔ)知識,包括Windows應(yīng)用程序界面組成和Windows應(yīng)用程序結(jié)構(gòu),并通過一個實例讓讀者熟悉Windows應(yīng)用程序編程過程。其中,讀者應(yīng)該明確掌握Windows應(yīng)用程序中各個主要函數(shù)的作用:WinMain()函數(shù)是一個程序的入口點,而WndProc()函數(shù)用于響應(yīng)窗口中的每個消息。下一章將要向讀者介紹Windows應(yīng)用程序的類封裝。上機指導(dǎo)實驗一:熟悉VisualC++集成開發(fā)環(huán)境實驗內(nèi)容創(chuàng)建一個名為myfirst的工程,部分界面如圖2.9所示。圖2.9New對話框
實驗?zāi)康墓び破涫拢叵壤淦?。同樣,想要熟練地編程,首要條件是要熟悉編程環(huán)境。因此本實驗需要讀者快速掌握創(chuàng)建Win32Application的步驟。
實現(xiàn)思路在2.4節(jié)講述了如何創(chuàng)建一個Win32Application實例。按照2.4節(jié)講述的順序創(chuàng)建即可。實驗二:創(chuàng)建一個Win32應(yīng)用程序(1)實驗內(nèi)容創(chuàng)建一個Win32的應(yīng)用程序,程序的運行結(jié)果如圖2.10所示。圖2.10實驗二的運行結(jié)果
實驗?zāi)康膭?chuàng)建一個標題名為“上機指導(dǎo)”、窗口內(nèi)容顯示“上機指導(dǎo)——實驗二”的Win32應(yīng)用程序。通過該實驗,可以理解Windows應(yīng)用程序的組成及其創(chuàng)建過程。
實現(xiàn)思路在2.4節(jié)講述了如何創(chuàng)建一個Win32Application實例。按照2.4節(jié)講述的順序創(chuàng)建即可。但是其中一些必要的代碼需要改動,請讀者自己思考。實驗三:創(chuàng)建一個Win32應(yīng)用程序(2)創(chuàng)建一個Win32的應(yīng)用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商鋪找人合伙協(xié)議書
- 垃圾應(yīng)急處置協(xié)議書
- 收購公司股權(quán)協(xié)議書
- 酒店轉(zhuǎn)讓簡易協(xié)議書
- 汽配公司入股協(xié)議書
- 全款買車購車協(xié)議書
- 兄弟地基購買協(xié)議書
- 雙象股份拆遷協(xié)議書
- 美國支持伊朗協(xié)議書
- 商場改造承包協(xié)議書
- 湖南邵陽農(nóng)商行招聘真題2024
- 2024年國家藥品監(jiān)督管理局直屬單位招聘考試真題
- DL∕T 2528-2022 電力儲能基本術(shù)語
- 青島啤酒財務(wù)分析
- 【城設(shè)計期末復(fù)習(xí)題】試題3
- 微量元素氨基酸螯合物的研究進展
- T∕CMES 06001-2021 流動科技館展品機械結(jié)構(gòu)設(shè)計規(guī)范
- 幼兒園螞蟻教學(xué)認識螞蟻螞蟻分類(課堂PPT)
- C35P10計算書
- 小學(xué)數(shù)學(xué)專題講座:“小學(xué)數(shù)學(xué)計算能力的培養(yǎng).ppt“
- 佛教開靈奠食科儀
評論
0/150
提交評論