AO 组件开发DLL+ArcMap 二次开发——精简版本(一)
前期工作:
1\安装VB6+ArcGIS8.3 Desktop +Develop kit
2\C:\arcgis\arcexe83\ArcObjects Developer Kit\Utilities默认目录下找到RegAddins.bat文件
双击后将相关ADDINS DLL注册到VB6中
正式开始:
1、打开VB 选择ActiveX工程
2、在ADDINS菜单下面选择ESRI Interface implementer ,然后在最上面下拉框中选择ICommand 接口,这个时候在VB中会自动生成关于ICommand 实现的SCHMEA代码(见图一)
因为本人不太喜欢这么多错误检验的代码,所以使用了ESRI ErrorHander Remover 工具
3、因为我们一般希望在点击按钮后,会有FORM弹出(一般思维方式了,这也是常用的方式)所以我这里添加一个Form1(名称我就都按默认了,当然这是不好的习惯!呵呵)
4、这个时候为了让这个程序跑起来我开始添加几条核心代码
在Class1中:
Private m_pApp As IApplication
Private Sub ICommand_OnCreate(ByVal hook As Object)
Set m_pApp = hook
Set Form1.m_pApplication = m_pApp
End Sub
Private Sub ICommand_OnClick()
Form1.Show
End Sub
在Form1中添加:
Public m_pApplication As IApplication
具体代码我这里就不用多解释了吧?呵呵
5、为了明确代码的归属以及方便我们调用我们还需要做几个小工作:
(1)Private Property Get ICommand_Category() As String
ICommand_Category = "数字北京"
End Property
(2)另外在Form1窗体上添加ImageList1控件 添加一个BMP的 图标 作为我们显示按钮的模样(如图二)
并修改代码在Class1文件中修改:
Private Property Get ICommand_Bitmap() As esriCore.OLE_HANDLE
ICommand_Bitmap = Form1.ImageList1.ListImages(1).Picture
End Property
(3)为了让我们默认的按钮可以使用,我们还需要对如下两个地方进行改动
Private Property Get ICommand_Enabled() As Boolean
ICommand_Enabled = True
End Property
Private Property Get ICommand_Checked() As Boolean
ICommand_Checked = True
End Property
(4)为了方便我们后面的测试 ,我还在Form窗体上放了个Command 按钮,方便我们测试