第一步,要认清楚鹰眼为什么能够工作:
在窗体添加2个mapcontrol控件而已,一个是主图,一个是鹰眼。
在主图上无非可以进行客户能动主观的动作,比如鼠标的移动,鼠标的操作等,捕捉到这些动作反馈到鹰眼上去进行相关操作:比如鹰眼会自动的把焦点移动到主图焦点位置。
同理,在鹰眼上操作,也会把信息传递到主图,这就好比是handler,如此而已。
第二部,我们一步一步的去把这些事件和我们的目的结合到一起:
1.鹰眼的数据要和主图的数据一致,对不对?不然何来的鹰眼?
第二步,既然鹰眼的数据有了,那么我们给鹰眼上面画一个红色的矩形。
先认识一下mapcontrol的OnExtentUpdated事件:帮助文档这么写的:Fires after the extent (visible bounds) of the MapControl is changed.就是说,我们主图发生任何的边界改变都会触发这个事件?
那么好,在这个时间添加如下代码:
这代码的意思,就是在鹰眼控件上画一个红色矩形框,填充为透视可见而已。
再往后,我们就在在鼠标事件上做文章了
鹰眼上触发鼠标事件:
那么,我们就实现了,在鹰眼上根据主图的变化自动绘制矩形框大小,在鹰眼上左点击时,主图视点移动;右点击的时候,鹰眼上画自定义矩形,主图再根据这个矩形而改变视图的一套流程了。