欢迎来到天天文库
浏览记录
ID:41551669
大小:82.34 KB
页数:4页
时间:2019-08-27
《第2节基于DLL的ArcGIS互操作开发》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、第2节基于DLL的ArcGIS互操作开发一、实验目的:掌握开发DLL扩展ArcGISDesktop功能的方法二、实验学时:2学时三、实验内容与步骤:1、新建类库项目。打开VisualStudio.NET2008开发环境,新建项目,在模板中选择“类库”,名称屮填写“RectToZoom”,保存项目,新建类库项目完成。如图2・1所示。删除文件Classl.cso图2J新建项冃对话框2、引入ESRI对象库。在“解决方案管理器”引用上右击,选择“添加引用”,在其“.NET”栏选择ESRI.ArcGIS.ADF、ESRI.ArcGIS.Carto、ESRI.ArcGIS.Controls
2、、ESRI.ArcGIS.Display、ESRI.ArcGIS.Geometry、ESRI.ArcGIS.System、ESRI.ArcGIS.SystemUI,将其引入项目。3、创建类Zoom,编码类Zoom,实现拉框放大功能的工具。(1)创建功能类Zoom在“解决方案管理器”中选择项目"RectToZoom",右击选择“添加”9“添加新项”,创建类文件Zoom.cso添加相关引用。^ZoomJn参考代码:usingSystem;usingSystem.Rimhme.InteropSerWces;//用」•系统加件操作usingSystem.Collections.Gene
3、ric;usingSystem.Drawing;//^于图标操作usingSystem.Text;usingESRI.ArcGIS.Carlo;usingESRI.ArcGfS.Geometry;usingESRI.ArcGIS.Controls;usingESR1.ArcGIS.Display;namespaceRectToZoom{publicclassZ()om:ESRLArcGIS.ADF.BaseClasses.BaseTool{}(2)设置抽象类ESRI.ArcGIS.ADF.BaseClasses.BaseTool◊对类Zoom继承抽象类ESRLArcGIS.AD
4、F.BaseClasses.BaseTool,并实现抽象类。如图2T所示。publicclassZoom:ESRI.ArcGIS.ADF.EaseClasses.®^(R)►组织using(O)►实灘竝(A)图2・2实现抽象类◊定义全局变量privatelliookHelpermJwokHelper=null;privateESRI.ArcGIS.Geometiy.IEnvelopem_envolope=null;privateESRLArcGIS.Carlo.IActiveViewm_activeView=null;privateESRI.ArcGIS.Display.IRu
5、bberBandmjrubberRect-null;◊实现OnCreate()方法publicoverridevoidOnCreatefobjecthook)//thrownewNotImplementedException();mJwokHelper=newESRI.ArcGIS.Controls.HookHelperClassf);mJwokHelper.Hook=hook;if(in^hookHelper.ActiveView==null){m_hookHelper=null;}}catchImJwokHelper=null;}if(mJwokHelper==mill)b
6、ase.m_encibled=false;elsebase.m_enabled=true;◊实现OnMouseDown()方法publicoverridevoidOnMouseDown(intButton,intShift、intX,intY)Im_activeView=rnJrookHelper.ActiveView;m_rubberRect=newESRI.ArcGIS.Display.RubberEnvelopeClass();m_envolope=m_rubberRect.TrackNew(m_activeView.ScreenDisplay9null)aslEnvel
7、ope;m_envolope.Expcmd(I/2.0,I/2.09true);m^activeView.Extent=m_envolope:m_activeView.Refresh();◊类Zoom的构造函数publicZoonif){base.m_category=flRectToZoomr,;base.in_caption=frZ()omIn2XToolr,;base.mjnessa^e="Z()()mIn2XToo「;base.rn_toolTip="ZoomIn2XToolbase
此文档下载收益归作者所有