?? winapi.txt
字號:
系統Shell提供了一些控制,使用這些控制可以使窗口具有與眾不同的外觀。由于這些
控制是由DLL支持的,是操作系統的一部分,所以它們對所有的應用程序都可用。使用通用
控制有助于使應用程序的用戶界面與系統Shell及其他應用程序保持一致。由于開發一個控
制需要花費一定的時間,所以直接使用通用控制也可以節省大量的開發時間。
通用控制是由通用控制庫COMCTL32.DLL支持的一個控制窗口集。與其他控制一樣,一
個通用控制也是應用程序的一個子窗口,它與其他窗口聯合使用,完成I/O操作。通用控制
DLL包括一個編程接口,應用程序可使用其中的函數創建和管理控制。以及從控制中接受用
戶輸入。
1.2.3 Shell特性
Win32 API中包含一些接口和函數,應用程序可使用它們來增強系統Shell的各方面功
能。
一個名字空間是一個符號集合,比如文件和目錄名字,或數據庫關鍵字。Shell使用一
個單層結構的名字空間來組織用戶關心的所有對象,包括文件、存儲設備、打印機及網絡資
源。名字空間類似于文件系統的目錄結構,只不過名字空間中包含的是對象,而不是文件和
目錄。
快捷鍵(也稱為一個Shell連接)是一個數據對象,它包含的信息可用于訪問位于Shell
名字空間的任何位置的其他對象。使用快捷鍵時,應用程序不必知道對象的當前名字和位置
就可以訪問該對象。可以通過快捷鍵訪問的對象包括文件、文件夾、磁盤驅動器、打印機及
網絡資源。
有幾種方法可以擴展Shell。系統使用圖標來表示Shell名字空間中的文件。缺省情況
下,系統對具有相同文件擴展名的所有文件都顯示相同的圖標。可以用一個圖標句柄來改變
某特殊文件的缺省圖標。使用上下文相關菜單句柄可以修改一個上下文相關菜單的內容,這
也是一種Shell擴展。當用戶用鼠標右鍵點擊或拖動一個對象時,系統會顯示一個上下文相
關菜單。該上下文相關菜單中所包含的命令只應用在被點擊或拖動的對象上。大多數上下文
相關菜單都包含一個Properties命令,用于顯示所選中項目的屬性表。一個屬性表由一系
列重疊的窗口組成(每個窗口稱為一頁),用于顯示有關某個對象的信息。屬性表句柄是一
種Shell擴展,使用它可以向系統定義的屬性表中添加頁,或替換控制面板的屬性表的某些
頁。一個拷貝掛鉤(Hook)句柄是一種 Shell擴展,可以允許或拒絕對一個文件對象的移
動、拷貝、刪除或重命名。
系統Shell包含一個快速查看(Quick View)命令,使用戶可以直接查看一個文件的內
容.而不必運行創建該文件的應用程序。文件瀏覽器提供了一個用于查看文件的用戶界面。
Shell使用文件擴展名來確定應運行哪個瀏覽器。你可以為新的文件格式提供文件瀏覽器,
或用具有更強功能的瀏覽器來替換原來的瀏覽器。文件瀏覽器與文件分析器聯合使用,后者
的功能是對文件名進行分析,以便確定應生成哪種類型文件的 QUck View。你還可以提供其
他的文件分析器來支持新的文件類型。
1.2.4 圖形設備接口
圖形設備接口(GDI)提供了一系列的函數和相關的結構,應用程序可以使用它們在顯
示器、打印機或其他設備上生成圖形化的輸出結果。使用GDI函數可以繪制直線、曲線、閉
合圖形、路徑、文本以及位圖圖像。所繪制的圖形的顏色和風格依賴于所創建的繪圖對象,
即畫筆、筆刷和字體。你可以使用畫筆來繪制直線和曲線,使用筆刷來填充閉合圖形的內部,
使用字體來書寫文本。
應用程序通過創建設備環境(DC),可以直接向指定的設備進行輸出。設備環境是一個
GDI管理的結構。其中包含一些有關設備的信息,比如它的操作方式及當前的選擇。應用程
序可使用設備環境函數來創建DC。GDI將返回一個設備環境句柄,在隨后的調用中,該句柄
用于表示該設備。例如,應用程序可以使用該句柄來獲取有關該設備性能的一些信息,諸如
它的類型(顯示器、打印機或其他設備),它的顯示界面的尺寸和分辨率等。
應用程序可以直接向一個物理設備進行輸出,比如顯示器或打印機;也可以向一個“邏
輯”設備進行輸出,比如內存設備或元文件。邏輯設備向應用程序所提供的保存輸出結果的
格式,可以很容易地將其發送到物理設備上。一旦應用程序將輸出結果記錄到了一個元文件
中,那么該元文件就可以被使用任意多次,并且該輸出結果可以被發送到任意多個物理設備
上。
應用程序可以使用屬性函數來設置設備的操作方式和當前的選擇。操作方式包括文本和
背景顏色,混色方式(也稱為二元光柵操作,用于確定畫筆或筆刷的顏色與繪圖區域現有的
顏色如何進行混色),映射方式(用于指定GDI如何將應用程序所用的坐標映射到設備坐標
系統上)。當前的選擇是指繪圖時使用哪個繪圖對象。
圖形設備接口函數包括以下幾類:
位圖函數(Bltmap)
位圖是一個圖形對象,可將圖像作為文件進行創建、處理(比例縮放、滾動、旋轉和繪
制)和存儲。
位圖函數提供了一系列處理位圖的方法。
筆刷函數(Brush)
筆刷是一種繪圖工具,Win32應用程序可使用它繪制多邊形、橢圓形和路徑的內部。繪
圖應用程序使用筆刷繪制圖形;字處理應用程序使用筆刷繪制水線;計算機輔助設計(CAD)
應用程序使用筆刷繪制截面視圖的內部;電子表格應用程序使用筆刷繪制餅圖的扇形和直方
圖的方條。筆刷函數提供了一系列創建和使用筆刷的方法。
剪裁函數(Clipping)
剪裁是一種處理過程,它將輸出到某個區域或路徑中的內容限制在應用程序窗口的顯示
區內。剪裁函數提供了一系列處理剪裁區域的方法。
顏色函數(Color)
顏色是組成Win32應用程序所生成的圖片和圖像的一個重要元素。 Win32 API提供了
一系列管理和使用畫筆、筆刷、文本和位圖的顏色的函數。
坐標空間及映射函數(Coordinate Space and Transformation)
Win32應用程序使用坐標空間和映射函數對輸出的圖形進行比例縮放、旋轉、轉換、剪
裁和反射。
坐標空間是基于笛卡爾坐標系統的一個平面空間。該坐標系統要求有兩個垂直相交的、長度
相等的坐標軸。共有4種坐標空間:現實坐標、頁面坐標、設備坐標、物理設備坐標(顯示
區,或桌面,或打印紙的頁面)。映射方式就是改變(“映射”)對象的大小、方向和形狀的
一種算法。
設備環境函數(Device Context)
設備環境是一個結構,它定義了一系列圖形對象及其相關的屬性,以及會影響輸出結果
的繪圖方式。這些圖形對象包括:畫筆(用于畫直線),筆刷(用于繪圖和填充),位圖(用
于屏幕的拷貝或滾動),調色板(用于定義可用的顏色集),剪裁區(用于剪裁和其他操作),
路徑(用于繪圖和畫圖操作)。設備環境函數用于對設備環境進行創建、刪除或獲取信息。
填充圖形函數(Filled Shape)
填充圖形是一些幾何圖形,其輪廓由當前的畫筆繪制,內部由當前的筆刷填充。共有5
種填充圖形:橢圓,弦圖,餅圖,多邊形,矩形。填充圖形函數用于對填充圖形進行操作。
字體和文本函數(Font and Text)
字體用于在視頻顯示器或其他輸出設備上繪制文本。Win32 API提供了一系列用于安裝、
選擇和查詢各種字體的字體和文本函數。
ICM 2.0函數
Microsoft Windows 98和Windows NT 5.0所使用的顏色管理方案稱為 Image Color
Management版本 2.0,或ICM2.0,由一系列函數組成。
直線和曲線函數(Line and Curve)
直線和曲線用于在光柵設備上繪制輸出圖形。一條直線是光柵顯示器上的一系列高亮像
素點(或打印紙上的一系列點),由兩個點進行標識:起點和終點。一條規則曲線也是光柵
顯示器上的一系列高亮像素點(或打印紙上的一系列點),符合某個二次曲線段的周界(或
一部分)。不規則曲線則是由不符合二次曲線段的一系列像素點組成。
元文件函數(Metafile)
元文件是一個結構的集合,這些結構是以與設備無關的格式存儲圖像。設備無關是元文
件與位圖的差異之一。與位圖不同,元文件保證是與設備無關的。不過,元文件有一個缺點:
它通常比位圖的繪圖速度慢。因此,如果一個應用程序要求有較快的繪圖速度,而不需要具
有設備無關性,則應該用位圖代替元文件。
元文件函數提供了一些對元文件進行操作的方法。
多顯示器支持函數(Multple Display Monltors)
每個Windows工作站所支持的顯示器個數是不受限制的。可以用創建鄰接區域的方式安
排多個顯示器。每個顯示器的大小和顏色深淺都可以獨立設置。
所有的顯示器屏幕一起構成了一個虛擬屏幕。桌面窗口覆蓋整個虛擬屏幕,而不僅僅是
某個顯示屏幕。由于現有的應用程序都要求顯示器具有一個原點坐標(0,0),所以虛擬屏
幕必須在某個顯示器上包含原點坐標(0,0),這個顯示器就被看作是主顯示器。
每個物理顯示設備都由一個HMONITOR類型的顯示器句柄表示。一個顯示器在它的整個
生存期間具有相同的HMONITOR值。
任何顯示設備環境(DC)的Win32函數所返回的值都是主顯示器的DC。要想獲取其他
顯示器的DC,可使用EnumDisplayMonitors函數。系統對每個顯示器調用回調函數,為該
顯示器傳入一個DC值。用戶可以使用該DC在該顯示器上繪圖。
繪圖和畫圖函數(Painting and Drawing)
繪圖和畫圖函數為應用程序提供了一系列在窗口中繪圖的方法,以及如何創建和使用顯
示設備環境(DC)的方法。
路徑函數(Path)
一個路徑是指一個或多個被填充、被繪制輪廓或既被填充又被繪制輪廓的圖形(或形
狀)。Win32應用程序將路徑用作很多用途,在繪圖和畫圖應用程序中使用路徑。計算機輔
助設計(CAD)應用程序用路徑來創建唯一剪裁區,繪制不規則形狀的輪廓,以及填充不規
則形狀的內部。路徑函數用于創建、改變和繪制路徑。
畫筆函數(Pen)
畫筆是Win32應用程序用于繪制直線和曲線的圖形工具。畫圖應用程序使用畫筆來畫手
畫線、直線以及曲線。計算機輔助設計(CAD)應用程序用畫筆來畫可見線、隱藏線、截面
線、中心線等等。字處理和桌面出版應用程序用畫筆來畫邊界和水線。電子表格應用程序用
畫筆來指明圖表的趨向,以及勾勒直方圖和餅圖的輪廓。畫筆函數提供了一系列使用畫筆的
方法。
打印和打印假脫機函數(Printing and Print Spooler)
Microsoft Windows和Windows NT提供了一套完整的函數,使應用程序可以在不同的
設備上進行打印,如激光打印機,向量繪圖儀,光柵打印機,以及傳真機等。
矩形函數(Rectangle)
Win32應用程序使用矩形來指定顯示屏幕上或窗口中的一個矩形區域。矩形函數用于對
矩形進行操作。
區域函數(Region)
區域是指一個可被填充、著色、轉換和加外框的形狀,包括矩形、多邊形或橢圓(或這
幾種形狀的組合),用于完成擊鍵測試(測試光標位置)。
區域函數用于對區域進行操作。
1.2.5 系統服務
系統服務函數為應用程序提供了訪問計算機資源以及底層操作系統特性的手段,比如訪
問內存、文件系統、設備、進程和線程。應用程序使用系統服務函數來管理和監視它所需要
的資源。例如,應用程序可使用內存管理函數來分配和釋放內存,使用進程管理和同步函數
來啟動和調整多個應用程序或在一個應用程序中運行的多個線程的操作。
系統服務函數提供了訪問文件、目錄以及輸入輸出(I/O)設備的手段。應用程序使用
文件I/O函數可以訪問保存在指定計算機以及網絡計算機上的磁盤和其他存儲設備上的文件
和目錄。這些函數支持各種文件系統,從FAT文件系統,CD-ROM文件系統(CDFS),到NTFS。
系統訪問函數為應用程序提供了一些可以與其他應用程序共享代碼或信息的方法。例
如,可以將一些有用的過程放到DLL中,使它們對所有的應用程序都可用。應用程序只需使
用DLL函數將動態鏈接庫加載進來并獲取各過程的地址,就可以使用這些過程了。通訊函數
用于向通訊端口寫入數據及從通訊端口讀出數據,并控制這些端口的操作方式。有幾種內部
通訊(IPC)的方法,比如DDE、管道(Pipe)、郵槽(Mailslot)和文件映射。對于提供安
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -