`
zhangziyangup
  • 浏览: 1079088 次
文章分类
社区版块
存档分类
最新评论

VC2010MFC下的ArcEngine开发(二)

 
阅读更多

本节主要解决地图控件的创建问题。

MapControl和PageLayOutControl都是COM组件,拖入窗口既可使用。

事实上ESRI的Control控件在早先版本9.0,9.1的时候是存在一些内存泄露的问题的。9.2之后的版本问题少了些,但是问题也是依然存在的,特别是三维控件。以ArcScene为例。小场景范围内的海量数据加载后,浏览速度会陡降,性能明显不佳,通过OpenGL的内存检测方法,可以检测到很多内存未正常释放。

Control的内存问题还表现在多个控件如果同时在一个界面中出现,内存问题会比较严重,程序有的时候会表现得不正常。

根据经验9.3 sp1下,目前推荐使用的控件是License Control,MapControl Control,PageLayout Control。

为了方便开发,在VC下开发不采用拖放控件的方式,而建议先通过MFC向导生成Control的包装类(或称为代理类),然后通过Create的方式创建。至于创建的时机一般选择在窗口的OnCreate方法中。

生成包装类的好处:

1、如果不是form控件,只是一个Cview对象,无妨直接拖放,只能动态创建

2、便于管理,如果需要添加事件,如OnClick事件,只需要用向导对包装类生成对应事件。便于对类方法的管理和组织。

3、事实上包装类可以分散一部分代码到包装类中,如果没有包装类,向导会把控件的事件方法挂到View上,这样View的方法和代码就会膨胀。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics