WinAPI: CreatePolygonRgn - 建立多边形区域
2008-05-26 16:22
363 查看
本例效果图:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) procedure FormPaint(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormPaint(Sender: TObject); var ps: array[0..9] of TPoint; Rgn: HRGN; begin ps[0] := Point(120, 5); ps[1] := Point(140, 70); ps[2] := Point(210, 70); ps[3] := Point(150, 100); ps[4] := Point(180, 175); ps[5] := Point(120, 120); ps[6] := Point(60, 175); ps[7] := Point(90, 100); ps[8] := Point(30, 70); ps[9] := Point(100, 70); {建立多边形区域} Rgn := CreatePolygonRgn(ps, Length(ps), WINDING); {填充区域} Canvas.Brush.Color := clSilver; Canvas.Brush.Style := bsCross; FillRgn(Canvas.Handle, Rgn, Canvas.Brush.Handle); {绘制区域边界} Canvas.Brush.Color := clRed; Canvas.Brush.Style := bsSolid; FrameRgn(Canvas.Handle, Rgn, Canvas.Brush.Handle, 2, 2); DeleteObject(Rgn); end; end.
相关文章推荐
- WinAPI: CreatePolyPolygonRgn - 建立多个多边形构成的区域
- 改变多边形窗口的时机;SetWindowRgn;CreatePolygonRgn;POINT;PolyDraw
- WinAPI: CreateEllipticRgn、CreateEllipticRgnIndirect - 建立椭圆区域
- WinAPI: CreateFontIndirect - 根据字体结构建立逻辑字体
- WinAPI: CreateSolidBrush - 建立实心画刷
- WinAPI: CreateHatchBrush - 建立阴影画刷
- WinAPI: ExtCreateRegion - 区域变换
- WinAPI: CreatePatternBrush - 建立位图画刷
- 【转】WinAPI: CreateFontIndirect - 根据字体结构建立逻辑字体
- WinAPI: CreateBrushIndirect - 根据画刷结构建立画刷
- WinAPI: CreateRectRgn、CreateRectRgnIndirect、FillRgn、FrameRgn - 建立矩形区域
- WinAPI: CreateDirectoryEx - 根据模版建立文件夹
- WinAPI: ExtCreateRegion - 区域变换
- WINAPI 区域的建立与删除实际操作注意情况
- WinAPI: CreateRoundRectRgn - 建立圆角矩形区域
- WinAPI: Polygon - 绘制多边形
- WinAPI: CreatePenIndirect - 根据笔的参数结构建立画笔
- CCDrawNode(是一个节点有drawDot drawSegment drawPolygon方法 可以类绘制点 线段 多边形--与drawing primitives不同 采用批渲染)
- 算法系列之十二:多边形区域填充算法--递归种子填充算法 .
- 再学 GDI+[9] DrawPolygon - 绘制多边形