資源描述:
《WINDOWS API函數(shù)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第一章Win32API概論1.1為什么使用Wu32API在Windows程序設(shè)計領(lǐng)域處于發(fā)展初期時,Windows程序員可使用的編程工具唯有API函數(shù)。這些函數(shù)在程序員手中猶如“積木塊”一樣,可搭建出各種界面豐富、功能靈活的應(yīng)用程序。不過,由于這些函數(shù)結(jié)構(gòu)復(fù)雜,所以往往難以理解,而且容易誤用。隨著軟件技術(shù)的不斷發(fā)展,在Windows平臺上出現(xiàn)了很多優(yōu)秀的可視化編程環(huán)境,程序員可以采用“所見即所得”的編程方式來開發(fā)具有精美用戶界面和功能的應(yīng)用程序。這些可視化編程環(huán)境操作簡便、界面友好,比如:VisualC++,Delphi,VisualBasic等等。在這些工具中提供
2、了大量的類庫和各種控件,它們替代了API的神秘功能。事實上,這些類庫和控件都是構(gòu)筑在WindowsAPI的基礎(chǔ)上的,但它們使用方便,加速了Windows應(yīng)用程序的開發(fā),所以受到程序員的普遍采用。有了這些類庫和控件,程序員們便可以把主要精力放在整體功能的設(shè)計上,而不必過于關(guān)注具體細節(jié)。不過,這也導(dǎo)致了非常多的程序員在類庫面前“固步自封”,對下層API函數(shù)的強大功能一無所知。實際上。程序員要想開發(fā)出更靈活、更實用、更具效率的應(yīng)用程序,必然要涉及到直接使用API函數(shù)。雖然類庫和控件使應(yīng)用程序的開發(fā)容易得多,但它們只提供MicrosoftWindows的一般功能,對于一些比
3、較復(fù)雜和特殊的功能來說,單使用類庫和控件是難以實現(xiàn)的,必須直接使用API函數(shù)來編寫。API函數(shù)是構(gòu)筑整個Windows框架的基石,只有充分理解和利用API函數(shù),才能深入到Windows的內(nèi)部,充分發(fā)揮各種32位平臺的強大功能和靈活性,才能成功地擴展和突破類庫、控件和可視開發(fā)環(huán)境的限制。1.2Win32API簡介Win32API即為Microsoft32位平臺的應(yīng)用程序編程接口(ApplicationProgrammingInterface)。所有在Win32平臺上運行的應(yīng)用程序都可以調(diào)用這些函數(shù)。使用Win32API,應(yīng)用程序可以充分挖掘Windows的32位操作系
4、統(tǒng)的潛力。Mircrosoft的所有32位平臺都支持統(tǒng)一的API,包括函數(shù)、結(jié)構(gòu)、消息、宏及接口。使用Win32API不但可以開發(fā)出在各種平臺上都能成功運行的應(yīng)用程序,而且也可以充分利用每個平臺特有的功能和屬性。在具體編程時,程序?qū)崿F(xiàn)方式的差異依賴于相應(yīng)平臺的底層功能的不同。最顯著的差異是某些函數(shù)只能在更強大的平臺上實現(xiàn)其功能。例如,安全函數(shù)只能在WindowsNT操作系統(tǒng)下使用。另外一些主要差別就是系統(tǒng)限制,比如值的范圍約束,或函數(shù)可管理的項目個數(shù)等等。標準Win32API函數(shù)可以分為以下幾類:窗口管理窗口通用控制Shell特性圖形設(shè)備接口系統(tǒng)服務(wù)國際特性網(wǎng)絡(luò)服務(wù)
5、在下面各節(jié)中,我們分別介紹這7種類型的API函數(shù)。1.2.1窗口管理函數(shù)窗口管理函數(shù)向應(yīng)用程序提供了一些創(chuàng)建和管理用戶界面的方法。你可以使用窗口管理函數(shù)創(chuàng)建和使用窗口來顯示輸出、提示用戶進行輸入以及完成其他一些與用戶進行交互所需的工作。大多數(shù)應(yīng)用程序都至少要創(chuàng)建一個窗口。應(yīng)用程序通過創(chuàng)建窗口類及相應(yīng)的窗口過程來定義它們所用窗日的外觀和行為。窗口類可標識窗口的缺省屬性,比如窗口是否接受雙擊鼠標按鈕的操作?;蚴欠駧в胁藛巍4翱谶^程中包含的代碼用于定義窗口的行為,完成所需的任務(wù),以及處理用戶的輸入。應(yīng)用程序可使用GDI函數(shù)來產(chǎn)生窗口的輸出。由于所有的窗口都共享顯示屏幕,所
6、以應(yīng)用程序不接受對整個屏幕的訪問。系統(tǒng)管理所有的輸出內(nèi)容,并對它們進行排列和剪裁,使其能夠適合相應(yīng)的窗口。應(yīng)用程序可以在處理輸入消息時,或為了響應(yīng)系統(tǒng)的需求而在窗口中繪圖。當窗口的大小或位置發(fā)生變化時,系統(tǒng)通常會向應(yīng)用程序發(fā)送一個消息,要求它對該窗口中原來未顯露的區(qū)域進行重畫。應(yīng)用程序以消息的形式接受鼠標和鍵盤輸入。系統(tǒng)將鼠標移動、鼠標按鈕操作轉(zhuǎn)換為輸入消息,并將這些消息放入該應(yīng)用程序的消息隊列中。系統(tǒng)為每個應(yīng)用程序都自動提供一個消息隊列。應(yīng)用程序使用消息函數(shù)從消息隊列中獲取消息,并將它們分派給適當?shù)拇翱谶^程進行處理。應(yīng)用程序可以直接處理鼠標和鍵盤輸人,也可以讓系統(tǒng)
7、使用菜單和鍵盤加速健將這些低級輸入轉(zhuǎn)換成命令消息。你可以使用菜單向用戶展現(xiàn)一個命令列表。系統(tǒng)對所有菜單操作所需的動作進行管理,包括讓用戶選擇一個命令,然后再向窗日過程發(fā)送一個標識該選擇的消息。鍵盤加速鍵是應(yīng)用程序定義的按鍵操作組合,系統(tǒng)可將其轉(zhuǎn)換為消息。加速鍵通常對應(yīng)于菜單中的某個命令,并與該命令產(chǎn)生相同的消息。應(yīng)用程序通過在對話框中向用戶提示附加信息來響應(yīng)命令消息。對話框?qū)嶋H是一個臨時的窗口,用于顯示信息或提示輸入。一個對話框通常由一些表示按鈕和方框的控制組成,可供用戶進行選擇或輸入信息。對話框中可包括用于輸入正文、滾動正文、從列表中選擇列表項等操作的控制。對