2. Mode屬性
Mode屬性定義線段的顏色。可結(jié)合當(dāng)前的顏色、屏幕顏色或它們的反轉(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——畫刷對象
畫刷對象用以填充圖形,如用畫刷顏色或圖案對矩形或橢圓進(jìn)行填充。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位二進(jìn)制數(shù)據(jù)。Graphic單元中還定義了一些常用的顏色常量,這些常量或直接映射成系統(tǒng)調(diào)色板中最相近的顏色,或映射成Windows控制面板中顏色部分的系統(tǒng)視頻顏色。
直接映射成系統(tǒng)調(diào)色板中的顏色有:
ClAqua,CLBlack,ClBlue,ClbkGrray,ClFuchsoa,...,ClYellow
映射程序用4字節(jié)的二進(jìn)制碼來定義顏色,低3位字節(jié)代表RGB相應(yīng)的顏色,如$00FF0000表示純藍(lán),$0000FF00表示純綠,$000000FF表示純紅,$00000000表示黑色,$00FFFFFF表示白色。如果最高位字節(jié)是$00,則表示用系統(tǒng)調(diào)色板中最相近的顏色;最高位字節(jié)是$01,則表示用當(dāng)前調(diào)色板中最相近的顏色匹配;最高位字節(jié)是$02,則表示用當(dāng)前設(shè)備描述表中邏輯調(diào)色板的次相近顏色匹配。
此外,還有一類顏色,比如:
ClBackground,CLActiveCaption,clInactiveCaption,clMenu…
它們分別表示當(dāng)前Windows桌面的背景色、當(dāng)前活動窗體的標(biāo)題欄的顏色、當(dāng)前非活動窗體的標(biāo)題欄顏色以及當(dāng)前菜單的背景色等。用這些顏色屬性,可以方便地寫出與當(dāng)前Windows相容的應(yīng)用程序,而不會出現(xiàn)程序在某個Windows風(fēng)格中顯得特別扎眼的情況。
用Windows
API的SelectPalette函數(shù)可創(chuàng)建邏輯調(diào)色板,要實現(xiàn)邏輯調(diào)色板到硬件調(diào)色板的映射,需用RealizePalette函數(shù)。