GDI+ 中的一些基础类
GDI+学习系列:
Qt中使用GDI+绘图
背景
GDI+ 是 Windows 提供的图形设备接口 GDI 的后续版本,相比 GDI ,GDI+ 是面向对象的,使用更方便。在 Qt 中也可以使用 GDI+ 进行绘图。
Point
GDI+ 中使用 Point 来表示坐标点,包含 X、Y 两个成员分别保存 x、y 坐标,PointF 是其浮点数版本。
Point m_point(10, 10);PointF m_pointF(10.0, 10.0);
Size
GDI+ 中使用 Size 来表示尺寸,包含 Width、Height 两个成员分别保存宽度和高度,SizeF 是其浮点数版本。
Size m_size(20, 30);SizeF m_sizeF(20.0, 30.0);
Rect
GDI+ 中使用左上角的坐标位置以及宽度和高度来描述一个矩形,用 Rect 类表示,包含 X、Y 、Width、Height 四个成员分别保存左上角的x、y 坐标,以及宽度和高度。
Rect m_rect(10, 20, 100, 300);RectF m_rectF(10.0, 20.0, 100.0, 300.0);
Color
①.概述
GDI+ 中使用 Color 来表示颜色,其值为 4 个字节分别表示透明、红、绿、蓝;构造函数为 Color(BYTE a, BYTE r, BYTE g, BYTE b),a 表示透明:0 为完全透明、255 为不透明。
Color m_color(255, 255, 0, 0);//红色、不透明
②.颜色枚举
在 Color 类中还内置了一些颜色枚举常量,可以直接使用。
Color m_color(Color::Red);//红色
Graphics
①.概述
图形类 Graphics 是 GDI+的核心,它提供绘制图形、图像和文本的各种方法。
Graphics graphics(hdc); //常用方法Graphics* graphics = Graphics::FromHDC(hdc);//使用其静态方法
②.status
在图形类 Graphics 中,封装了各种绘图函数。每种绘图函数被调用后,都会返回一种 叫做 status 的枚举值,反映该函数是否被正确执行,0 表示正确,其他大于 0 的值为错误 。
Graphics graphics(hdc); Status status = graphics.GetLastStatus(); if(Ok != status){ //出错 return;}
③.Clear
清屏函数 Clear 的作用为用户用指定的颜色填充背景。
Graphics graphics(hdc);graphics.Clear(Color::Red);
运行结果如下:
④.平滑设置
Graphics 通过设置平滑模式成员函数 SetSmoothingMode 来设置绘图时的平滑化处理。
graph.SetSmoothingMode(SmoothingModeAntiAlias);//平滑设置
Pen
所有的 Graphics 类的方法都得配合 Pen 对象使用。因此,为了绘制任何东西,您必须至少创建 2 个对象:一个 Graphics 对象和一个 Pen 对象。
Pen(const Color &color, REAL width = 1.0);
Brush
一个闭合图形比如矩形和椭圆包含一个边框和内部区域。边框是由 Pen 对象绘制,而内部区域由 Brush 对象进行填充.
SolidBrush(const Color &color);