mapinfo在V上的相关操作.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
mapinfo在V上的相关操作

基于MFC的MapInfo 数字地图在VC+ + 中的集成 Map??basic 具有强大的地理信息数据操作处理功能, 可实现对Mapinfo 的编程, 为用户提供了扩充系统功能的能力, 提供了开放的结构, 可实现Mapinfo 与其他程序之间的连接。但是要实现美观的用户界面及较好功能的客户端应用程序, 和对网络数据进行计算就非常困难。而VC、VB 等可视化的编程工具弥补Mapbasic 的不足, 更好的开发用户所需要的系统。Mapinfo 与其他程连接的方法有以下几种: ( 1) OLE( Object Linking and Embedding ) 自动化技术。Mapinfo 提供OLE 自动化对象模型, 它允许其他支持OLE功能的应用程序把Mapinfo 作为OLE 服务器向其他应用程序提供它的对象, 而客户应用程序则使用它的对象。其他应用程序是通过调用OLE 自动化对象( 如M apinfo 和Applica??tio n 对象) 的方法、属性来操作Mapinfo。 ( 2) 回调( CallBack) 。回调是指当服务器应用程序发生了一个事件, 它会自动地通知客户应用程序的过程。回调主要包括两种方式: OLE 回调、DDE 回调。Mapinfo 提供的标准的回调接口主要有: SCODE SetStatusTex t( LPCTSTR lpszMessag e) 当map??info 的状态栏发生变化时调用, 参数为新的状态栏字符串指针。SCODE Window Content sChang ed( Unsig ned Lo ng Win??dow ID)当派遣地图窗口内容发生变化时mapinfo 将调用Win??dow Co ntentsChanged 方法, 参数是被改变窗口的ID 值。 ( 3) 动态数据交换DDE( Dynamic Data Ex chang e) 技术。应用程序间的动态数据交换是多任务的重要特征。动态数据交换( DDE) 是Windows 操作系统支持的机制, 用于支持DDE服务器程序组成。通常请求数据的应用程序是客户, 提供被请求的数据、更新DDE 客户端的是服务器, 对于Mapinfo 既可以是客户也可以是服务器。事实上, 一个单一的应用程序可以同时开展多个会话, 在一些会话中作为客户程序, 在另一些会话中作为服务器程序。 ( 4) 调用动态连接库( DLL) 。DLL 是一种基于Windows的程序模块, 它不仅可以包含可执行代码, 还能有数据, 各种资源, 扩大了库文件的使用范围。而在Mapinfo 中, 调用动态连接库方法比较繁琐, 需要较高的技巧, 在实际应用中很少用到. 基于MFC 的Mapinfo 数字地图在VC+ + 中集成的实现 在VC+ + 中调用Mapinfo 提供的对象模型, 通过自动化技术可以方便的实现。将Mapinfo 地图窗口继承到应用程序中, 是把Mapinfo 作为自动化服务器, 应用程序作为自动化客户。一般是利用MFC 提供的COleDispatchDir ver 类创建静态客户。 具体实现过程如下: ( 1) 创建工程, 实现对mapinfo 的调用! 利用AppWizar d 创建工程, 选择Automation 项。将mapinfow . h、mapinfow. cpp、mapbasic. h 加入到工程文件中。 在应用程序类中加入头文件: # include ?? mapinfow.h ; 并在成员变量声明中, 声明全局变量mapinfo 类的对象:DMapInfo Mapinfo; 在应用程的InitInstance 方法中, 通过调用CreateDispat ch( ) 来创建IDispatch 类型的对象: Ma pinfo. CreateDispatch( ?? M apInfo. Application ) Ma pinfo. CreateDispatch( ?? M apInfo. Runt ime ) # 在头文件mapinfow. h 的最后面加入: ex tern DMapInfo Mapinfo; # include ?? mapbasic. h ; ?在CMa inFrame: : OnCr eate 中加入以下语句: char str [ 256] ; sprintf ( str, Set Applicatio n Window % lu , ( lo ng )( UINT) m_hWnd) ; mapinfo. Do( st r) ; / / 调用mapinfo 的Do( ) 方法。 这样就实现了vc 中调用mapinfo。 ( 2) 加载数字地图 获得mapinfo 窗口的标识, 将mapinfo 窗口

文档评论(0)

zhanci3731 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档