《孙鑫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.练习绘图功能,绘画连续的线、绘画扇形;


 

发布了18 篇原创文章 · 获赞 3 · 访问量 3968

猜你喜欢

转载自blog.csdn.net/Redboy_Crazy/article/details/21492377