ArcGIS Engine 10 开发手册(3-5)第一个控件MapControl

本文目录
  • 正文

MapControl 对应于 ArcMap 中的数据视图,它封装了 Map 对象,并提供了额外的属性,方法,事件等。 在 ArcGIS Engine 的帮助文件中,我们可以看到 MapControl 主要实现了如下接口:

在前面的例子中,我们已经看到如何使用 MapControl 加载 Mxd 文档和 Shp 文件等。下面我们通过实 现鹰眼图这个功能来进一步学习 MapControl 控件。在实现鹰眼图之前,我们需要接口有更深入的了解。

变主动为被动-出接口(OutBound interface)

COM 编程类似客户端和服务器端的两层结构,COM 所建立的是一个软件模块与另一个软件模块之间的链接, 当这种链接建立之后, 模块之间就可以通过被称之为 Interface“接口 ”的机制来进行通信。在绝 大部分情况下, 客户应用程序与组件的通信过程是单向的, 客户创建组件对象, 然后客户通过接口调用 对象所提供的功能, 在适当的时候再把对象释放掉。在这种交互过程中, 客户总是主动的, 而组件总是 处于被动状态, 通过自身暴露给客户的接口监听客户的请求, 一旦接收到客户的请求便做出反应,这些 反应的“幕后“,也就是代码是被屏蔽掉的,我们是看不到这些接口内的方法是如何实现的。这样的接口 称为入接口 InBound Interface,但是对于一个全面交互过程来说, 这样的单向通信往往是不能满足实际的 需要, 组件对象也要主动与客户进行通信, 因此, 与入接口相对应, 对象也可以提供出接口 OutBound interface,对象通过这些出接口与客户进行通信。之所以把这些接口称为出接口, 其原因在于这些接口并 不由 COM 服务器端的对象实现, 而是由客户程序自己来实现, 客户实现这些接口, 服务器端调用此接 口的成员函数, 即调用了客户自定义的函数, 这时组件对象变成了客户端的客户。也就是说出接口的实 现是由我们自己实现,而被服务器调用,这样的接口,我们往往称之为事件接口,这些接口里面定义了一 些如 OnMouseUp,OnMouseMove 等函数,当相应事件发生的时候,由服务器去执行这个事件里面的内容。

ArcGIS Engine 10 开发手册全集

ArcGIS Engine 10 开发手册全集: ArcGIS Engine 10 开发手册

如您有疑问,可在文末留言,或到QQ群提问。

本站QQ群:291616564 麻辣GIS

微信公众号:malagis,扫描右边二维码直接关注。

微信捐助麻辣GIS 支付宝捐助麻辣GIS

如果本文对您有所帮助,欢迎对我们团队进行打赏捐助,让我们在传播3S的路上可以走得更远。


作者:,GIS爱好者。
分享本文,请您带上本文链接

发表评论