在Windows中畫點的方法很簡單,只需要調用COLORREF CDC::SetPixel( int x, int y, COLORREF crColor )就可以在指定點畫上指定顏色,同時返回原來的顏色。COLORREF CDC::GetPixel( int x, int y)可以得到指定點的顏色。在Windows中應該少使用畫點的函數,因為這樣做的執行效率比較低。
刷子和畫筆在Windows作圖中是使用最多的GUI對象,本節在講解刷子和畫筆使用方法的同時也講述一寫基本作圖函數。
在畫點或畫線時系統使用當前DC中的畫筆,所以在創建畫筆後必須將其選入DC才會在繪圖時產生效果。畫筆可以通過CPen對象來產生,通過調用CPen::CreatePen( int nPenStyle, int nWidth, COLORREF crColor )來創建。其中nPenStyle指名畫筆的風格,可取如下值:
- PS_SOLID 實線 Creates a solid pen.
- PS_DASH 虛線,寬度必須為一 Creates a dashed pen. Valid only when the pen width is 1 or less, in device units.
- PS_DOT 點線,寬度必須為一 Creates a dotted pen. Valid only when the pen width is 1 or less, in device units.
- PS_DASHDOT 點劃線,寬度必須為一 Creates a pen with alternating dashes and dots. Valid only when the pen width is 1 or less, in device units.
- PS_DASHDOTDOT 雙點劃線,寬度必須為一 Creates a pen with alternating dashes and double dots. Valid only when the pen width is 1 or less, in device units.
- PS_NULL 空線,使用時什麼也不會產生 Creates a null pen.
- PS_ENDCAP_ROUND 結束處為圓形 End caps are round.
- PS_ENDCAP_SQUARE 結束處為方形 End caps are square.
nWidth和crColor為線的寬度和顏色。
刷子是在畫封閉曲線時用來填充的顏色,例如當你畫圓形或方形時系統會用當前的刷子對內部進行填充。刷子可利用CBrush對象產生。通過以下幾種函數創建刷子:
- BOOL CreateSolidBrush( COLORREF crColor ); 創建一種固定顏色的刷子
- BOOL CreateHatchBrush( int nIndex, COLORREF crColor ); 創建指定顏色和網格的刷子,nIndex可取以下值:
- HS_BDIAGONAL Downward hatch (left to right) at 45 degrees
- HS_CROSS Horizontal and vertical crosshatch
- HS_DIAGCROSS Crosshatch at 45 degrees
- HS_FDIAGONAL Upward hatch (left to right) at 45 degrees