本节主要解决地图控件的创建问题。
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的方法和代码就会膨胀。
分享到:
相关推荐
用vc开发ArcEngine建立框架程序 GIS二次开发
VC6.0+Arcengine9.0开发应用程序框架制作
ArcEngine与VB、C#、VC的开发
用VC开发ArcEngine的框架代码。
用VC及ArcEngine开发的实现缓冲区分析功能的代码
基于VC#和AE(ARCENGINE)开发了一个综合地理信息系统,其可实现多种数据格式的显示,可实现地图符号化,坐标转化,数据库的创建与数据入库,三维场景,三维分析,数据多种查询等等。
VC_MFC应用程序开发,非常不错的一本书,希望和大家分享!
本文是使用VC_开发的基于ArcEngine的3维管线距离分析组件,很具有参考价值!
类功能:提供了一个MFC下截取窗口特定部分并保存为bmp图片的类。 ; 类成员函数:void screenShot(CRect rect,int left,int top,char *name) ; 函数参数:Crect rect, int left, int top, int top, char* name。 ; ...
vc+ArcEngine建立框架程序:制作浮动可变大小的控制窗口,可以实现图层拖放-vc+ ArcEngine procedures for the establishment of the framework: the production of a floating variable to control the size of the ...
mfc中一般输出信息部方便 用到OutPutDebugString 需要用debugview来弄 不是太爽 所以 如果能搞一个控制台程序 并且使用printf 那该有多爽 在 InitInstance 中添加 下面内容 AllocConsole ; 开辟控制台 ...
[VC-MFC编程实例].01 [VC-MFC编程实例].02 [VC-MFC编程实例].03 [VC-MFC编程实例].04 [VC-MFC编程实例].05 [VC-MFC编程实例].06 [VC-MFC编程实例].07 [VC-MFC编程实例].08 [VC-MFC编程实例].09 [VC-MFC编程实例].10 ...
VC/MFC斗地主游戏源码,VC/MFC单机游戏源码下载
蛮好的开发资料 二、ArcEngine+ VC.NET 2005开发
MFC程序设计详细实例 第29章 VC2005 MFC编程环境MFC程序设计详细实例 第29章 VC2005 MFC编程环境MFC程序设计详细实例 第29章 VC2005 MFC编程环境MFC程序设计详细实例 第29章 VC2005 MFC编程环境MFC程序设计详细实例 ...
基于ArcEngine和VC#结合的AE二次开发,包括基本文件夹在于显示,空间分析功能的实现等。
vc6.0 mfc 实现窗口分割,分割后为两个窗口。
vc 基于MFC的文件操作vc 基于MFC的文件操作vc 基于MFC的文件操作