知識點1:學習了繪圖相關的類:
畫筆類:CPen::Cpen
CPen();
CPen( int nPenStyle, int nWidth, COLORREF crColor );
nPenStyle:線型,包括直線、點線、虛線等;
nWidth:線寬,即線的寬度;
crColor:線的顏色;
顏色相關的宏定義COLORREF RGB( BYTE byRed, // red component of color BYTE byGreen, // green component of color BYTE byBlue // blue component of color );
畫刷類:CBrush::CBrush
有4種重載的構造函數
CBrush();
無參數構造函數,使用前必須初始化;
CBrush( COLORREF crColor );
throw( CResourceException );帶“畫刷顏色”形參構造的畫刷;
CBrush( int nIndex, COLORREF crColor );
throw( CResourceException );nIndex:hatch style
帶類型和顏色2個形參的構造函數;
CBrush( CBitmap* pBitmap );
throw( CResourceException );位圖作爲形參的構造函數;
知識點2.學習瞭如何新建一個位圖;
知識點3.矩形框的透明畫刷填充實現:
利用平臺SDK的Windows GDI函數
GetStockObject
The GetStockObject function retrieves a handle to one of the stock pens, brushes, fonts, or palettes.
HGDIOBJ GetStockObject( int fnObject // stock object type );來獲取透明畫刷,方式爲 GetStockObject(NULL_BRUSH);
知識點4.類的靜態成員函數和靜態數據成員的學習
以下語句利用了CBrush的靜態成員函數FromHandle
CBrush *brush = CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
注意要點:
a.類的靜態成員函數和靜態數據成員在程序的編譯階段已經分配了內存空間,靜態成員只屬於類,並不是屬於某一個對象;
b.類的靜態成員函數只能訪問靜態數據成員,不能訪問非靜態成員函數和非靜態數據成員;
c.類的非靜態成員函數可以訪問靜態成員函數;
d.類的靜態數據成員必須初始化;
知識點5.練習繪圖功能,繪畫連續的線、繪畫扇形;