|
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 |