02windows應(yīng)用程序架構(gòu)分析

02windows應(yīng)用程序架構(gòu)分析

ID:32591907

大小:85.58 KB

頁數(shù):20頁

時間:2019-02-13

02windows應(yīng)用程序架構(gòu)分析_第1頁
02windows應(yīng)用程序架構(gòu)分析_第2頁
02windows應(yīng)用程序架構(gòu)分析_第3頁
02windows應(yīng)用程序架構(gòu)分析_第4頁
02windows應(yīng)用程序架構(gòu)分析_第5頁
資源描述:

《02windows應(yīng)用程序架構(gòu)分析》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、第二章WINDOWS應(yīng)用程序結(jié)構(gòu)創(chuàng)建窗口只需調(diào)用CrcatcWindow函數(shù)即可,但實際上并不這么簡單。但實際上并非真得這么簡單。雖然創(chuàng)建窗口的函數(shù)確實被命名為CreateWindow,但您將發(fā)現(xiàn)CreateWindow的第一個參數(shù)就是所謂的“窗口類名稱”,并且該窗口類連接所謂的“窗口過程”o在我們調(diào)用CreateWindow之前,有一點背景知識會對您大有幫助。WIND0WS應(yīng)用程序的基本結(jié)構(gòu)進(jìn)行Windows程序設(shè)計,實際上是在進(jìn)行一種面向?qū)ο蟮某绦蛟O(shè)計(OOP)o這一點在Windows中使用得最多的對象身上表現(xiàn)最為明顯。這種對象正是Windows之所以命名

2、為“Windows"的原因,它具有人格化的特征,這就是那個叫做“窗口”的對象。一、總體結(jié)構(gòu)桌面上最明顯的窗口就是應(yīng)用程序窗口。這些窗口含有顯示程序名稱的標(biāo)題欄、菜單,甚至可能還有工具欄和滾動條。另一類窗口是對話框,它可以有標(biāo)題欄也可以沒有標(biāo)題欄。裝飾對話框表面的還有各式各樣的按鈕、單選鈕、復(fù)選框、列表框、滾動條和文本輸入?yún)^(qū)域。其屮每一個小的可視對彖都是一個窗口。更確切地說,這些都稱為“子窗口”或“控件窗口”或“子窗口控件”。作為對象,用戶會在屏幕上看到這些窗口,并通過鍵盤和鼠標(biāo)直接與它們進(jìn)行交互操作。更有趣的是,程序員的觀點與用戶的觀點極其類似。窗口以“消息”

3、的形式接收窗口的輸入,窗口也用消息與其他窗口通訊。對消息的理解將是學(xué)習(xí)如何編寫Windows程序必須逾越的障礙之一。這有一個windows的消息示例:我們知道,大多數(shù)的windows程序都有大小合適的應(yīng)用程序窗口。也就是說,您能夠通過鼠標(biāo)拖動窗口的邊框來改變窗口的大小。通常,程序?qū)⑼ㄟ^改變窗口中的內(nèi)容來響應(yīng)這種大小的變化。是Windows木身而不是應(yīng)用程序正在處理與用戶重新調(diào)整窗口大小相關(guān)的全部代碼。由于應(yīng)用程序能改變其顯示的格式,所以它也“知道”窗口大小改變了。應(yīng)用程序是如何知道用戶改變了窗口的大小的呢?由于程序員習(xí)慣了常規(guī)的字符模式程序,操作系統(tǒng)沒有設(shè)置將

4、此類消息通知給用戶的機制。問題的關(guān)鍵在于理解Windows所使用的體系結(jié)構(gòu)。當(dāng)用戶改變窗口的大小時‘Windows給程序發(fā)送一條消息指出新窗口的大小。然后程序就可以調(diào)整窗口中的內(nèi)容,以反映大小的變化?!癢indows給程序發(fā)送消息?!蔽覀兿Mx者不要對這句話視而不見。它到底表達(dá)了什么意思呢?我們在這里討論的是程序代碼,而不是一個電子郵件系統(tǒng)。操作系統(tǒng)怎么給程序發(fā)送消息呢?其實,所謂"Windows給程序發(fā)送消息”,是指Windows調(diào)用程序中的一個函數(shù),該函數(shù)的參數(shù)描述了這個特定消息。這種位于Windows程序中的函數(shù)被稱為“窗口過程”o無疑,讀者對程序調(diào)用操

5、作系統(tǒng)的思路是很熟悉的。例如,程序在打開磁盤文件吋就要使用有關(guān)的系統(tǒng)調(diào)用。讀者所不習(xí)慣的,可能是操作系統(tǒng)調(diào)用程序,而這正是Windows面向?qū)ο篌w系結(jié)構(gòu)的基礎(chǔ)。程序創(chuàng)建的每一個窗口都有相關(guān)的窗口過程。這個窗口過程是一個函數(shù),既可以在程序中,也可以在動態(tài)鏈接庫中。Windows通過調(diào)用窗口過程來給窗口發(fā)送消息。窗口過程根據(jù)此消息進(jìn)行處理,然后將控制返回給Windowso更確切地說,窗口通常是在“窗口類”的基礎(chǔ)上創(chuàng)建的。窗口類標(biāo)識了處理窗口消息的窗口過程。使用窗口類使多個窗口能夠基于同一個窗口類,并II使用同一個窗口過程。例如,所有Windows程序中的所有按鈕均

6、基于同一個窗口類。這個窗口類與一個位于Windows動態(tài)鏈接庫(處理所有的按鈕窗口消息)的窗口過程相聯(lián)系。在面向?qū)ο蟮某绦蛟O(shè)計中,對象是代碼與數(shù)據(jù)的組合。窗口是一種對象,其代碼是窗口過程。數(shù)據(jù)是窗口過程保存的信息,以及Windows為每個窗口系統(tǒng)中那個窗口類保存的信息。窗口過程處理給窗口發(fā)送的消息。這些消息經(jīng)常是告知窗口,用戶正使用鍵盤或鼠標(biāo)進(jìn)行輸入。這正是按鈕窗口知道它被“按下”的奧妙所在。在窗口大小改變或窗口表面需要重畫時,由其他消息通知窗口。Windows程序開始執(zhí)行后,Windows為該程序創(chuàng)建一個“消息隊列”。這個消息隊列用來存放該程序可能創(chuàng)建的各種

7、不同窗口的消息。程序中有一小段代碼,叫做“消息循環(huán)”,用來從隊列中取出消息,并且將它們發(fā)送給相應(yīng)的窗口過程。有些消息直接發(fā)送給窗口過程,不用放人消息隊列中。如果您對這段有關(guān)Windows體系結(jié)構(gòu)的過于簡略的描述將信將疑,就讓我們?nèi)タ纯丛趯嶋H的程序中,窗口、窗口類、窗口過程、消息隊列、消息循環(huán)和窗口消息是如何相互配合的。這或許對您會有些幫助。創(chuàng)建一個窗口首先需要注冊一個窗口類,那需要一個窗口過程來處理窗口消息。這包括一段幾乎出現(xiàn)在每一個Window程序中的固定代碼。程序2.1所示的HELLOWIN程序就是一個包括這段固定代碼的簡單程序。二、程序2.1#inelu

8、deLRESUL

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。