《孫鑫VC視頻教程》04繪圖-學習總結2

知識點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.練習繪圖功能,繪畫連續的線、繪畫扇形;

 

 

 

 


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章