Arcengine 绘制Element、Symbol 在控件上
来源:互联网 发布:测试鼠标灵敏度软件 编辑:程序博客网 时间:2024/06/06 20:56
一、ISymbol:
ISymbol接口有Draw函数,查询其接口可以发现,我们需要执行ISymbol.SetupDC -> ISymbol.Draw -> ISymbol.ResetDC 这三个步骤;
首先SetupDC需要参数 hDC和IDisplayTransformation;贴代码:
例如:绘制在Panel上:
————————————————————————————————————————————————————————————————-
int width=Panel.Width;
int heigth=Panel.Heigth;
//绘制方法
Graphics graph=Graphics.FromHwnd(Panel.Handle);graph.Clear(Panel.BackColor);
//分辨率
double dpi=graph.DpiX;IEnvelope pEnve=new EnvelopeClass();
pEnve.PutCoords(0,0,width,heigth);
Ipoint pCenterPt=new PointClass;
pCenter.PutCoords(width/2,height/2);
tagRECT myRect=new tagRECT();
设置MyRect 的 top=0;bottom=heigh; left=0,right=width;
IDisplayransformation pDisTrans=new DisplayTrabsformation();
pDisTrans.VisiableBounds=pEnve;
pDisTrans.Bounds=pEnv;
pDisTrans.Set_DeviceFrame(ref myRect);
pDisTrans.Resolution=dpi;
intPtr hdc=graph.GetHdc();
ISymbol.SetupDC(hec.ToInt32,pDisTrans);
ISymbol.Draw(pCenterPt);
ISymbol.ResetDC();
//绘制完成后 是否绘图对象
graph.ReleaseHdc(hdc);
graph.Dispose();
二、Symbol的第二种方法
IStyleGalleryItem item=new ServerStyleGalleryItemClass();
item.Item=youSymbol;//你需要预览的ISymbol
stdole.IPictureDisp pic=axSymbologyControl1.GetStyleClass(esriSymbologyStyleClass).PriviewItem(item,100,100);
Image img=Image.FormHbitmap(new IntPtr(pic.Handle));
picPriview.Image=img;
//_____________________________________________________________________________________________________
绘制Element 在Panel控件上
其中 graph、pCenterPoint、pDisTrans 的设置方式和上面一样
以绘制线段为例:
IDisplay pDisplay=new SimpleDisplay();
pDisplay.StartDrawing(graph.GetHdc(),ToInt32(),(short)esriScreeCache.esriNoScreeCache);
pDisplay.DisplayTransformation=pDisTrans;
pDisplay.SetSymbol(LineSymbol);//设置绘制线段的符号
pDisplay.DrawPolyline(IGeometry) ;//设置绘制线段的几何数据
//在arcgis帮助中找吧
- Arcengine 绘制Element、Symbol 在控件上
- ArcEngine在AxMapControl上绘制
- Arcengine实现:在 MapControl 上绘制几何图形
- MFC在静态控件上绘制直线
- vc在指定控件上绘制bmp
- C#学习笔记:在控件上绘制文字
- [VB.NET]利用Timer控件的Tick()事件在自定义控件上绘制动画!
- ArcEngine透明Element的实现
- Arcengine Element 之 Redo Undo
- ArcEngine在地图上加载Server图层数据
- C#用鼠标在控件上绘制虚线框,并且获取矩形。
- 直接在窗体上绘制二维文本/不加任何控件展现图像
- VS2005 中如何在DataGridView控件的数据列标题上绘制编号
- Mac一些常用控件以及简单在自定义View上绘制字符串
- MFC双缓冲绘制多边形,将图形透明贴在控件上
- 在按钮上绘制图片
- 在Bitmap上绘制Bitmap
- 在屏幕上绘制字符串
- eclipse android 不会自动生成R.java文件和包的解决办法
- 3GPP组织结构简介
- 传智播客c/c++公开课学习笔记--Linux网络流媒体服务器的核心代码揭秘
- 利用Resgen.exe 批量生成resources文件
- Quartz作业调度框架
- Arcengine 绘制Element、Symbol 在控件上
- STM32总结
- 进程与线程的一个简单解释
- Android XUtils 框架简介
- 随机生成N位字段串
- iOS 9 升级过程汇中白苹果 iPhone或iPad 解决方案
- LPTSTR、LPCSTR、LPCTSTR、LPSTR的来源及意义
- ios下的语音开发——科大讯飞使用
- mesos和Elasticsearch设计(一)