VC、OpenGL、ArcGIS Engine开发的二维三维结合的GIS系统
2009-01-16 19:39:17 来源:WEB开发网第一种本论文称之为COM方式,该方式加载的控件图标并不出现在工具箱中。首先右击对话框,选择“插入ActiveX控件”;然后选择“插入ActiveX控件”对话框中要加载的控件,如:ESRI MapControl,这样MapControl即出现在对话框中。
第二种本论文称之为C++方式,该方式加载的控件图标出现在工具箱中,并且向VC工程中添加该控件的VC源文件(*.cpp)和头文件(*.h)。首先,选择工程->增加到工程->Components and Controls菜单,打开“Components and Controls”对话框,选择Registered ActiveX Controls中要插入到工程的控件,如:ESRI MapControl,这样MapControl即出现在VC工具箱中,便可以像默认控件那样,在对话框中绘制MapControl。
3、定义ArcGIS Engine的类对象。ArcGIS Engine包含三种类[62]:抽象类(abstract class)、可实例化类(class)和组件类(cocalss)。抽象类不能用以创建新对象,但可以指定子类;可实例化类不能够直接创建新对象,因为它的构造函数是私有的,但可以通过其他类对象的属性或其他类的方法实例化;组件类指的是能够直接使用通过开发环境中的对象定义语法来创建对象的类,组件类可以直接被创建或者实例化。
VC中均采用智能指针来声明ArcGIS Engine接口,可以被实例化的类在VC中具有三种实例化方式:
第一种本论文称之为类标识方式。在类对象声明时,直接使用类唯一标识(CLSID)进行构造,如:IFieldsPtr pFlds(CLSID_Fields);
第二种本论文称之为ATL方式。在类对象声明时,使用CocreateInstance方法进行构造,如:CComPtr<IFields> pFlds;pFlds.CoCreateInstance(CLSID_Fields);
第三种本论文称之为COM方式。在类对象声明时,使用CreateInstance方法进行构造,如:IFeatureLayerPtr pFlds;HRESULT hr = pFlds.CreateInstance(CLSID_Fields)。
赞助商链接