ArcEngine+VC6二次开发
添加ESRI MapControl不支持此接口的解决办法
系统开发环境如下所示:
ArcGIS Engine 9.3 Runtime+SDK
VC6.0
一、创建一个VC工程
使用AppWizard来创建MFC工程(选择File->New->Project Workspace菜单,
这时弹出创建向导对话框,工程命名为AoEx,按照创建向导创建工程的步骤如下:
(1)在Step 1中,选择"Single Document" 作为工程的应用类型;
(2)在Step 2中,选择缺省值;
(3)在Step 3中,选择"ActiveX controls"支持;
(4)在Step 4中,选择缺省值;
(5)在Step 5中,选择缺省值;
(6)在Step 6中,选择CAoExView类,并用CFormView类作为基类,最后点击Finish完成按钮完成工程的创建工作。
二、向工程中添加MapControl控件
MapControl是一个很有用的控件,当它添加到工程以后,类似于ArcMap中的"DataView"窗口。
它提供了许多方法、属性和事件,可以帮助我们完成以下主要功能:
(1) 管理控件的外观;
(2) 管理控件的显示属性;
(3) 管理Map的特性;
(4) 添加和管理控件中的图层数据,包括添加、删除数据文件,显示数据。
这里使用Visual C++的Component Gallery来添加MapControl控件。
通过Project->Add to Project->Components and Controls菜单项来打开Component Gallery组件库。
Component Gallery有两个缺省的、系统定义的文件夹Registered ActiveX Controls和Visual C++ Components。
MapControl控件在Registered ActiveX Controls文件夹中。
在Registered ActiveX Controls文件夹中选择ESRI MapControl,
然后点击Insert按钮,这时弹出Confirm Classes对话框,保持该对话框中的设置,
点击OK按钮完成MapControl控件的加载,同时也向工程中添加了控件封装的所有应用类。
以上说明来源于武汉大学出版社出版的《地理信息系统开发-ArcObjects方法》
韩鹏 徐占华 褚海峰 姜文亮 编著
好了现在来说明报错的问题:
在Registered ActiveX Controls文件夹中选择ESRI MapControl,
然后点击Insert按钮时报错了,出错信息为:
“ESRI MapControl不支持此接口”
在网上也没有查询到相关的解决方法,
下面是我添加MapControl控件的方法,不知道通不通用了,你们就试作办吧。
打开主对话框IDD_AoEx_FORM,这时会发现有一个新的工具出现在控制面格上,
如果上述(二)步骤添加成功的话,这个工具就是新加入的MapCotrol控件了。
像插入一般的控件一样将MapControl控件插入到该主对话框中。
如果没有添加成功,报错了,现在可以在该主对话框中点击右键,
弹出右键菜单,选择插件ActiveX Control菜单项,
在弹出的对话框中ActiveX Control列表中选择ESRI MapControl控件,
点击OK确定按钮,完成MapControl控件的插入操作,
这样主对话框中就有一个MapControl地图控件了。
------the---end-----
-----vp:hsg
-----create date:2012-05-08