ImageVerifierCode 换一换
格式:DOCX , 页数:338 ,大小:1.37MB ,
资源ID:19431217      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19431217.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(开发入门Word文档下载推荐.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

开发入门Word文档下载推荐.docx

1、在VBA编辑器中写好VBA代码后,有两种方式运行:第一,点击VBA编辑器工具条中的(运行)按钮,可立即运行写好的代码;第二,退出VBA编辑器,重新启动Macro对话框,如图2,选择要运行的VBA宏名称,点击按钮即可运行相应的VBA宏。方法二:创建UIControl(交互式VBA编程) 1、用鼠标右击任何工具栏(条),在弹出的上托式菜单中选择菜单项,如图4,进入图5所示的Customize对话框。图4 启动“Customize”对话框2、切换到“Customize”对话框的“Commands”页,选中“UIControls”后点击按钮,进入图6所示的“New UIControl”对话框。3、在“

2、New UIControl”对话框中,用户可根据需要选择UIControl类型:UIButtonControl:创建Button;UIToolControl:创建与Map交互的Tool;UIEditBoxControl:创建EditBox;UIComboBoxControl:创建ComboBox。最后点击按钮只创建UIControl或者点击按钮创建UIControl并进入VBA编辑器。与方法一不同,此时应在UIControl的事件中进行VBA编程。图5 Customize对话框图6 New UIControl对话框4、UIControl创建后,在图5所示的“Customize”对话框选中UIC

3、ontrol并将其拖置到任意工具条上,用户便可象使用系统已有的Control一样使用所创建的UIControl。1.1.2. 如何在VB环境中利用ArcObjects组件开发ActiveX DLL1.1.1节讨论了如何在ArcGis的VBA环境中编程,虽然通过这种方式可以完成大多数用户的定制需求,但是,在某些情况下,对于特殊的应用,用户需要脱离ArcGIS环境而在VB开发环境中开发外部独立的应用程序,这种外部独立的应用程序有两种形式: ActiveX DLL和Standard EXE。Standard EXE的开发将在1.1.4中讨论,本节将讨论ActiveX DLL的开发,其关键是引用Arc

4、Objects对象库和实现ArcObjects接口(例如ICommand,ITool,IToolBar等)。下面介绍在VB环境利用ArcObjects组件开发ActiveX DLL的一般步骤。1、启动VB开发环境,在图7所示的“New Project”对话框中选择“ActiveX DLL”项,并点击按钮,进入VBE环境。图7 New Project对话框2、引用ArcObjects对象库:首先点击菜单中的项,如图8,进入对象库引用对话框,如图9。图8 启动对象库引用对话框图9 对象库引用对话框3、对象库引用对话框(图9)中选中“Esri ArcMap Object Library ”和“Esr

5、i Object Library” 两项,并点击按钮,返回VBE环境。4、一般在类模块中写入实现特定ArcObjects接口的代码,如图10,然后运行Make project1.dll项,生成DLL文件,如图11。(project1.dll随项目名改变)。图10 类模块编辑窗口图11 生成DLL文件1.1.3. 如何在ArcMap中加载利用ArcObjects组件开发的ActiveX DLL用户通过1.1.2中介绍的方法开发好一个ActiveX DLL程序后,便可根据实际需要,在ArcMap环境下加载这个ActiveX DLL程序。其一般步骤如下:1、用鼠标右击任何工具栏(条),点击弹出的上托

6、式菜单中的菜单项(参见图4)。2、在Customize对话框中,根据被加载DLL的类型切换到“Toolbars”或者“Commands”页(参见图5),然后点击按钮。3、在“打开文件”对话框中(Windows通用“打开文件”对话框,图略),选择被加载的Dll文件,并点击4、如果加载是“Commands”,则在图5所示的对话框中显示加载的Command,并可以将其拖置于任何工具条上;如果加载是“ToolBars”,则在图12所示的对话框中显示加载的ToolBar,选中后即可在ArcMap中显示。图12 加载ToolBar1.1.4. 如何在VB环境中利用ArcObjects控件开发EXE利用Ar

7、cObjects控件开发EXE的前三步类似于1.1.2中开发“Acrtive Dll”的前三步,唯一不同的是在“New Project”对话框中选择“Standard EXE”。4、点击菜单项中的项,打开“Components”对话框,如图13。图13 打开Components对话框5、在“Components”对话框中,切换到Controls页,并选中“ESRI MapControl”项,点击或按钮,如图14。图14 Components对话框6、如图15所示,加载MapControl控件之后,在VBE的控件面板中出现了MapControl控件图标,用户便可以象在Form中添加Button一

8、样在Form中添加MapControl控件,并利用它开发EXE。图15 添加MapControl控件1.2. 用户界面1.2.1. 如何创建定制的按钮(Button)本例要实现的是如何创建定制的按钮(Button)。 要点用户通过在类模块中实现ICommand接口来创建定制的按钮(COM command)。ICommand接口包括 caption、 name、 category、 bitmap、 message(StatusBarr的提示信息)、 tooltip(微帮助)、 help context id 、help file、enabled以及checked等十个属性和OnCreate、On

9、Click两个事件。从Icommand接口的OnCreate事件中获取的ArcMap的Application实例必须用一个公共变量保存,以便在其它事件中(或者其它接口的事件中甚至整个工程中)使用。OnCreate事件的参数hook传入的是一个Object,也就是ArcMAP的Application实例,可把它赋给一个IApplication接口的变量,便获得了ArcMAP的实例。在OnClick事件中写入相关代码,表示按下按钮时要实现的功能. 程序说明程序在类模块中实现Icommand接口来创建自己的按钮(Button) 代码Option Explicit实现Icommand接口Impleme

10、nts ICommandDim m_pPicture as PictureDim m_pApplication As IApplicationPrivate Sub Class_Initialize()调入.RES文件中ID为101的BitMap作为该按钮的显示图片Set m_pPicture = LoadResPicture(101, vbResBitmap)End SubPrivate Property Get ICommand_Bitmap() As esriCore.OLE_HANDLE ICommand_Bitmap = m_pPictureEnd PropertyPrivate P

11、roperty Get ICommand_Caption() As String ICommand_Caption = Create ButtonPrivate Property Get ICommand_Category() As String ICommand_Category = Create Button Private Property Get ICommand_Checked() As BooleanPrivate Property Get ICommand_Enabled() As Boolean ICommand_Enabled = TruePrivate Property G

12、et ICommand_HelpContextID() As LongPrivate Property Get ICommand_HelpFile() As StringPrivate Property Get ICommand_Message() As StringPrivate Property Get ICommand_Name() As StringICommand_Name = CreateButton Private Sub ICommand_OnClick()加入按下按钮时实现的功能代码。在这里,按钮按下时显示ArcMap的Document的Tittle Dim pDocumen

13、t As IDocument Set pDocument = m_pApplication.Document MsgBox pDocument.TitlePrivate Sub ICommand_OnCreate(ByVal hook As Object)获取ArcMap的Application实例 Set m_pApplication = hookPrivate Property Get ICommand_Tooltip() As String ICommand_Tooltip = 1.2.2. 如何创建定制的Tool本例要实现的是如何创建定制的Tool用户在类模块中实现Icommand(参

14、见1.2.1)和ITool接口。ITool接口包括 mouse move, mouse button press/release, keyboard key press/release, double-click以及right click等事件、Cursor属性和Refresh方法。Tool既具有Button的功能,又具有与ArcMAP界面交互的功能,Button的功能代码必须写在Icommand的OnClick事件中,而所有实现交互功能的代码必须写在Itool接口的各个事件中。Itool接口的各个事件,用户可以在其中写入相关代码,表示用户与ArcMAP界面交互时一旦触发某事件要实现的功能。程

15、序在类模块中实现Icommand和Itool接口来创建自己的Tool.实现Icommand和Itool接口Implements IToolDim m_pApplication As IApplication Dim m_pBitmap As IPictureDispDim m_pCursor As IpictureDispSet m_pBitmap = LoadResPicture(101, 0) 从.RES文件中调入ID为102的图片作为按下Tool后的MouseCursorSet m_pCursor = LoadResPicture(102, 2)ICommand_Bitmap = m_p

16、BitmapICommand_Caption = MyToolICommand_Category = MyCustomToolsICommand_Enabled = TrueICommand_Message = This is my custom toolMyCustomTool_MyTool加入按下按钮时实现的功能代码MsgBox Clicked on my command获取ArcMAP的Application实例Set m_pApplication = hookICommand_Tooltip = Private Property Get ITool_Cursor() As esriCo

17、re.OLE_HANDLEITool_Cursor = m_pCursorPrivate Function ITool_Deactivate() As Boolean如果ITool_Deactivate设为False,则Tool不可用ITool_Deactivate = TrueEnd FunctionPrivate Function ITool_OnContextMenu(ByVal X As Long, ByVal Y As Long) As Boolean在这里可以加入用户代码,点击Mouse右键时显示一个定制的context menu Private Sub ITool_OnDblCl

18、ick()在这里加入Mouse双击时的功能代码Private Sub ITool_OnKeyDown(ByVal keyCode As Long, ByVal Shift As Long)Private Sub ITool_OnKeyUp(ByVal keyCode As Long, ByVal Shift As Long)Private Sub ITool_OnMouseDown(ByVal Button As Long, ByVal Shift As Long, _ByVal X As Long, ByVal Y As Long)加入Mouse单击时的功能代码If Button = 1 T

19、hen Dim pPoint As IPoint Dim pMxApplication As IMxApplication Set pMxApplication = m_pAppSet pPoint=pMxApplication.Display.DisplayTransformation.ToMapPoint(X, Y)m_pApplication.StatusBar.Message(0) = Str(pPoint.X) & , & Str(pPoint.Y)End IfPrivate Sub ITool_OnMouseMove(ByVal Button As Long, ByVal Shif

20、t As Long, _加入Mouse移动时的功能代码m_pApplication.StatusBar.Message(0) = ITool_OnMouseMovePrivate Sub ITool_OnMouseUp(ByVal Button As Long, ByVal Shift As Long, _加入释放Mouse时的功能代码ITool_OnMouseUpPrivate Sub ITool_Refresh(ByVal hDC As esriCore.OLE_HANDLE)1.2.3. 如何创建定制的工具条(Tool Bar)本例要实现的是如何创建定制的工具条(Tool Bar)。就必

21、须在类模块中实现IToolBarDef接口。IToolBarDef接口包括 Caption、ItemCount及Name三个属性和GetItemInfo方法。通过在类模块中实现IToolBarDef接口。ItemCount属性表示ToolBar显示的条目(Button、Tool或其它控件)数。 GetItemInfo方法定义工具条上各条目的CLSID,其中,参数pos表示条目在ToolBar中的位置,itemDef是定义相应位置的条目的IItemDef 对象。工具条条目的CLSID分为两种:1、系统CLSID,代表ArcGIS的一个功能,其引用方式为esriCore.命令名称,如esriCor

22、e.AddDataCommand、esriCore.FileSaveCommand等。2、用户定制CLSID,表示用户自己定义的功能。其引用方式为工程名称.定制功能类名称 ToolBarDef.ClsBar 。必须注意,这里“定制功能类名称”是工程中实现的一个功能类名称,“工程名称”即为当前工程的名称(不是DLL文件名,也不是工具条的名称),每次新建一个工程时,系统默认的工程名在某些情况下无法使用(在中文版的VB中是一个乱字符),必须改名后方能用。程序在类模块中实现IToolBarDef接口来创建自己的工具条(ToolBar)。Implements IToolBarDefPrivate Pro

23、perty Get IToolBarDef_Caption() As StringIToolBarDef_Caption = CustomToolBarPrivate Sub IToolBarDef_GetItemInfo(ByVal pos As Long, ByVal itemDef As _esriCore.IItemDef)这里假设在当前工程(工程名称为ToolBarDef)中定义了一个类模块(名为ClsBar),它实现了Icommand接口(可参照1.2.1)Select Case posCase 0用户自定义条目 itemDef.ID = ToolBarDef.ClsBar ite

24、mDef.Group = FalseCase 1系统条目End SelectPrivate Property Get IToolBarDef_ItemCount() As LongIToolBarDef_ItemCount = 2Private Property Get IToolBarDef_Name() As StringIToolBarDef_Name = 1.2.4. 如何创建定制的MultiItem本例要实现的是如何创建定制的MultiItem。需要实现IMultiItem接口,但不需要同时实现Icommand接口。IMultiItem接口包括Caption,itemCaption,ItemBitmap,ItemEnabled,ItemC

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1