|
private int g_hOldPen;
private int g_hPen;
private int g_hOldBrush;
private int g_hBrush;
private PatternStyle m_PatternStyle;
#region ICustomFill 成员
public void ResetDC(int hDC)
{
// TODO: 添加 Polygons.ResetDC 实现
//释放资源
if(this.g_hPen != 0)
{
SelectObject(hDC,g_hOldPen);
DeleteObject(g_hPen);
}
if(this.g_hOldBrush != 0)
{
SelectObject(hDC,g_hOldBrush);
DeleteObject(g_hBrush);
}
}
public void SetupDC(int hDC, double dpi, object pBaseSym)
{
// TODO: 添加 Polygons.SetupDC 实现
//边界样式
ESRI.MapObjects2.Core.Symbol sym = pBaseSym as ESRI.MapObjects2.Core.Symbol;
g_hPen = CreatePen(sym.Style,sym.Size,(int)sym.Color);
//通过GDI+和API从Bitmap创建画刷
System.Drawing.Bitmap bmp =( System.Drawing.Bitmap)this.m_PatternStyle.Image;
int ibmp = bmp.GetHbitmap().ToInt32();
g_hBrush = CreatePatternBrush(ibmp);
DeleteObject(ibmp);
}
public void Draw(int hDC, ref int points, ref int partCounts, int numParts)
{
// TODO: 添加 Polygons.Draw 实现
//将画笔、画刷选入当前的设备描述表
this.g_hOldPen = SelectObject(hDC, g_hPen);
this.g_hOldBrush = SelectObject(hDC,g_hBrush);
//绘制多边形
PolyPolygon(hDC,ref points,ref partCounts,numParts);
}
#endregion |