2. Mode屬性
Mode屬性定義線段的顏色??山Y(jié)合當前的顏色、屏幕顏色或它們的反轉(zhuǎn)值,對線段的顏色重新定義,但不改變Color屬性,詳見表4.4。
表4.4 Mode屬性的取值及含義
Mode屬性
|
像素顏色
|
PmBlack
|
黑色
|
PmWhite
|
白色
|
PmNop
|
不變
|
PmCopy
|
使用Color屬性中的顏色
|
PmNotCopy
|
筆顏色的反轉(zhuǎn)值
|
PmMergePenNot
|
筆顏色與屏幕顏色反轉(zhuǎn)值的結(jié)合
|
PmNaskNotPen
|
屏幕顏色與筆顏色的結(jié)合
|
PmMergeNotPen
|
屏幕顏色與筆顏色反轉(zhuǎn)值的結(jié)合
|
4.4.3 TBrush——畫刷對象
畫刷對象用以填充圖形,如用畫刷顏色或圖案對矩形或橢圓進行填充。TBrush擁有一個HBrush(畫刷句柄)。
畫刷的顏色定義在Color屬性中。畫刷還有一個Bitmap屬性,該屬性只能在運行時得到,畫刷可使用位圖填充圖形以產(chǎn)生特殊效果。位圖大小為8個像素點高,8個像素點寬。
Style屬性定義了畫刷填充圖形的圖案,如圖4.8所示為Style的取值。
取值 圖案 取值 圖案
圖4.8 畫刷的類型
4.4.4 TColor——顏色對象
TColor類型用于定義對象的顏色。很多組件的顏色屬性就是TColor 類型,
在Graphics單元中TColor定義如下:
TColor = -$7FFFFFFF-1..$7FFFFFFF;
這是一個32位二進制數(shù)據(jù)。Graphic單元中還定義了一些常用的顏色常量,這些常量或直接映射成系統(tǒng)調(diào)色板中最相近的顏色,或映射成Windows控制面板中顏色部分的系統(tǒng)視頻顏色。
直接映射成系統(tǒng)調(diào)色板中的顏色有:
ClAqua,CLBlack,ClBlue,ClbkGrray,ClFuchsoa,...,ClYellow
映射程序用4字節(jié)的二進制碼來定義顏色,低3位字節(jié)代表RGB相應的顏色,如$00FF0000表示純藍,$0000FF00表示純綠,$000000FF表示純紅,$00000000表示黑色,$00FFFFFF表示白色。如果最高位字節(jié)是$00,則表示用系統(tǒng)調(diào)色板中最相近的顏色;最高位字節(jié)是$01,則表示用當前調(diào)色板中最相近的顏色匹配;最高位字節(jié)是$02,則表示用當前設備描述表中邏輯調(diào)色板的次相近顏色匹配。
此外,還有一類顏色,比如:
ClBackground,CLActiveCaption,clInactiveCaption,clMenu…
它們分別表示當前Windows桌面的背景色、當前活動窗體的標題欄的顏色、當前非活動窗體的標題欄顏色以及當前菜單的背景色等。用這些顏色屬性,可以方便地寫出與當前Windows相容的應用程序,而不會出現(xiàn)程序在某個Windows風格中顯得特別扎眼的情況。
用Windows
API的SelectPalette函數(shù)可創(chuàng)建邏輯調(diào)色板,要實現(xiàn)邏輯調(diào)色板到硬件調(diào)色板的映射,需用RealizePalette函數(shù)。