图形变换最主要的是采用矩阵变换。
矩阵类Matrix,Invert(转置)、Multiply(矩阵相乘)、Rotate(旋转)等
Matrix(IN REAL m11, IN REAL m12, IN REAL m21,
IN REAL m22, IN REAL dx, IN REAL dy);
Matrix(IN const RectF& rect, IN const PointF* dstplg)
Matrix(IN const Rect& rect, IN const Point* dstplg)
Matrix matrix( -1,0,0,1, 150,50);
graphics.SetTransform(&matrix);
graphics.DrawLine(&pen, 0,0,50,30);
平移 TranslateTransform
Status TranslateTransform(IN REAL dx,
IN REAL dy,
IN MatrixOrder order = MatrixOrderPrepend)
比例 ScaleTransform
Status ScaleTransform(IN REAL sx,
IN REAL sy,
IN MatrixOrder order = MatrixOrderPrepend)
旋转 RotateTransform
Status RotateTransform(IN REAL angle,
IN MatrixOrder order = MatrixOrderPrepend);
绘图函数 功能描述
DrawArc 绘制一条圆弧曲线,范围由起止角大小决定,大小由矩形或长宽值指定
DrawBezier 绘制一条由一系列型值顶点决定的三次 Bezier 曲线
DrawBeziers 绘制一系列的三次 Bezier 曲线
DrawClosedCurve 绘制一条封闭的样条曲线
DrawCurve 绘制一条样条曲线
DrawEllipse 绘制一条椭圆轮廓线,大小由矩形或长宽值指定
DrawLine 绘制一条直线
DrawPath 绘制由 GraphicsPath 定义的路径轮廓线
DrawPie 绘制一条扇形(饼形)轮廓线
DrawPolygon 绘制一个多边形的轮廓线
DrawRectangle 绘制一个矩形
FillEllipse 填充一个椭圆区域
FillPath 填充一个由路径指定的区域
FillPie 填充一个扇形(饼形)区域
FillPolygon 填充一个多边形区域
FillRectangle 填充一个矩形区域
FillRectangles 用同一个画刷填充一系列矩形区域
FillRegion 填充一个区域(Region)的内部
字样是字符书写和显示时表现出的特定模式,通常有宋体、楷体、仿
宋、黑体、隶书以及幼圆等多种字样。GDI+是通过 FontFamily 类来定义字样的
FontFamily fontFamily(L"幼圆");
字体
字体风格主要表现为字体的粗细和是否倾斜等特点。
FontStyleRegular(正常)、FontStyleBold(加粗)、FontStyleItalic(斜体)、
FontStyleBoldItalic (粗斜体)、FontStyleUnderline(下划线)和 FontStyleStrikeout(删除线)
字体尺寸是用来指定字符所占区域的大小,通常用字符高度来描述。字体尺寸可以取毫
米或英寸作为单位。GDI+为用户提供了 UnitDisplay(1/75 英寸)、UnitPixel(像素)、UnitPoint(点)、
UnitInch(英寸)、UnitDocument(1/300 英寸)、UnitMillimeter(毫米)等字体尺寸单位。
使用方法:
Font font(&fontFamily, 12, FontStyleRegular, UnitPoint);
Font( HDC hdc, const LOGFONTW* logfont)
hdc 是用来指定一个窗口的设备环境句柄,logfon 是指向 LOGFONT(逻辑字体)
数据结构的指针。
文本输出
文本输出与文本的字体、颜色、对齐方式、字符间隔等有很大关系
输出文本函数 DrawString
DrawString( const WCHAR* string, // 输出的字符串
INT length, // 字符串的长度
const Font* font, // 字体
const RectF& layoutRect, // 输出的矩形区域
const StringFormat* stringFormat, // 文本输出格式化属性
const Brush* brush ); // 画刷
DrawString( const WCHAR* string,
INT length,
const Font* font,
const PointF& origin, // 来指定字符串输出的起点
const Brush* brush );
DrawString( const WCHAR* string, INT length, const Font* font,
const PointF& origin, const StringFormat* stringFormat,
const Brush* brush);
FontFamily fontFamily(L"幼圆");
Font font(&fontFamily, 20, FontStyleRegular, UnitPoint);
PointF pointF(30, 10);
LinearGradientBrush linGrBrush(
Point(30, 50),
Point(100, 50),
Color(255, 255, 0, 0),
Color(255, 0, 0, 255));
WCHAR string[256];
wcscpy(string, L"欢迎使用 GDI+!");
graphics.DrawString(string, (INT)wcslen(string), &font, pointF, &linGrBrush)
SetTextRenderingHint 来控制文本输出的质量
文本格式属性 StringFormat 类
Status SetAlignment( StringAlignment align);
Status SetLineAlignment( StringAlignment align);
Status SetFormatFlags( INT flags );