1. 第一个例子——“Hello World!”
第一个最经典的例子当然是Hello World了:)
- Graphics mygraphics(*pDC);
-
-
- SolidBrush brush( Color(100,0,0,255) );
-
- FontFamily fontFamily(L"Latha");
-
- Font font( &fontFamily, 1, FontStyleRegular,UnitInch );
-
- PointF pointF(5,5);
- mygraphics.DrawString( L"Hello Word!", -1, &font, pointF, &brush );
上面的例子就会显示出一行大大的“Hello World!”。
需要注意的是,
Font
的构造函数,里面的第二个参数是表示字体大小的。与过去不同,这里的单位不再是像素,而是一相对的长度单位
em
。常用于
CSS
里对距离,长度,字号等的定义。
它是参照于预先设置的一个值的。根据具体的使用环境不同,其标准值也不一样。
而且,这个参数是支持实数的,也就是说不必是整数。
|
很简单的就可以载入并显示出来一个jpg图片了。需要注意的是,GDI+的所有字符串参数,都是要宽字符的。
- Graphics imgraphics( *pDC );
-
- Image image(L"001.jpg");
- imgraphics.DrawImage(&image,0,0);
可以发现
Graphics
在
GDI+
中,的作用,有些象
GDI
种的
CDC
,不过不同的是,
Graphics
是设备无关的,所以我们不必在费神的考虑设备无关位图和设备相关位图的差别了。
同时,
GDI+
本身就支持非常多的图片格式,所以载入图片并显示的过程被大大简化了。需要注意的是,某些常用格式的图片本身还有很多差异,例如
bmp
图片就又被细分为
16
位,
24
位,
32
位,根据其保存的算法不同还分作压缩和非压缩的。根据掩码不同,
16
位又分成了多种格式。这些格式里就有很多是
GDI+
不支持的。
|
- Graphics Pathraphics( *pDC );
-
- GraphicsPath path;
-
- Pen newPen( Color( 255, 0, 0 ), 3 );
-
- path.AddLine( 0,0,100,100 );
-
- Pathraphics.DrawPath( &newPen, &path );
GDI+
的
Pen
类还提供
SetDashStyle
和
SetDashPattern
方法来设置画笔的预定义风格和自
定义类型。其中,预定义风格可以有:
DashStyleSolid(
实线
)
、
DashStyleDash(
虚线
)
、
DashStyleDot(
点线
)
、
DashStyleDashDot(
点划线
)
、
DashStyleDashDotDot(
双点划线
)
和
DashStyleCustom(
自定义类型
)
。
|
- Graphics Pathraphics( *pDC );
-
- GraphicsPath path;
-
- Pen newPen( Color( 255, 0, 0 ), 3 );
- newPen.SetDashStyle(DashStyleCustom);
-
- REAL dashVals[4] = {
- 2,
- 2 ,
- 7,
- 2 };
-
- newPen.SetDashPattern(dashVals, 4);
-
-
- path.AddLine( 0,0,100,100 );
- path.AddLine( 200,100,200,50 );
-
- Pathraphics.DrawPath( &newPen, &path );
经过少许的变化,这次画出了一条稍微复杂一点的线。利用一个简单的浮点数组来定义点线的周期,就可以画出不同的点划线了。
通过
newPen.SetStartCap( LineCapArrowAnchor );
newPen.SetEndCap( LineCapDiamondAnchor );
还能够设置线的端点的样式,例如箭头,圆等等
|
|