文章正文

在VisualC++环境中使用MapX

文章来源: 文章作者: 2008-06-13  字体:[ 我要投稿!
在VisualC++中使用MapX的方法不同于VisualBasic和C++Buildel;在VisualC++中,每个MapX对象是一个C++类,这些类在MapX.h文件中声明,在MapX.cpp文件中实现
这些C++类的名称与MapX对象的名称相同,在对象名称前面加上CMapX就构成了类各例如,数据集(Dataset)对象对应的类名为CMapXDataset。
17.1.1  访问MapX的属性
    MapX对象的属性是通过C++类的成员函数来实现的。例如,像数据集对象的可读/写属性Name是由CMapXDataset类中的两个成员函数实现的:一个用于设置属性的值,另一个
用于得到属性的值。这些成员函数的名称是在属性名称前加Get或Set而成。
    例如:
    CString GetName();
    void SetName{LPCTSTR);
    只读属性只有Get成员函数,而没有Set成员函数。
17.1.2  访问MapX的方法
    MapX对象的方法通过与该方法同名的成员函数实现。许多方法的参数是const VARIANT&,这意味着成员函数要求传递一个类型为VARIANT的变量。
    同时许多方法的一些参数对于像VisualBasic或其他脚本语言来说是可选择的,但是在Visual C++中,当调用这些方法时,必须设置所有的参魏所有的可选参数都是VARIANT 字串4
类型。可以利用如下方法调用带可选参数的MapX方法:
    VARIANT vtOptional;
    vtOptional.Vt = VT_ERROR;
    vtOptional.scode = DISP_E_PARAMNOTFOUND;
    为了在方法中便于调用标准的C++类型而不是VARIANT,在MapX.h和MapX.cpp中重载了大多数MapX方法但是一些方法没有重载,如果需要使用,用户可以自己重载这些
方法。
    在MapX.h中的C++类都是从MFC的COleDispatchDriver类派生而米  所有的属性和方法最终都调用IDispatch->Invoke()来告诉MapX的OCX做什么COleDispatchDriver通常能正确调用从属性或方法返回的IDispatch指针的Release()函数,但是还是有一些需要特别
注意的地方。当一MapX对象通过它的IDispatch接口被传递给一事件句柄时,必须确保不
要释放该指针,因为传递给事件的对象没有调用AddRef函数来增加引用计数。
    17.2  创建MapX控件
    本节将通过创建一个MapX应用程序来介绍如何在VisualC++中创建MapX控件。
    [实例17.1]  首先选择File菜单中的New命令,弹出New对话框。选择MFCAppWizard(exe),并在ProjectName中输入MapxSample作为工程名称。然后单击OK按钮,进入应用程序向导的第一步。通过应用程序向导创建一多文档界面应用程序。 字串5
    在创建MapX控件之前,必须将MapX.h和MapX.cpp文件加入到工程中。对于Visual C++5.0及以上版本,从Project菜单中选择Add To Project > Files命令,打开InsertFiles into Project对话框,选择MapX.cpp和MapX.h文件加入到工程中。
    注意:不要选择Project菜单中的Add TO Project > Components And Controls命令。如果选择该命令加入MapX控件,将创建一新的.cpp丈件,但是该文本没有
    包括所有的MapX对象。
    在工程中加入MapX.h和MapX.cpp文件后,在包含该控件的MapxSarnpleView中加入MapX对象的头文件。如下所列:
    #include "MapX.h"
    ClaSS  CMapxSampleVieW : publiC  CView
    {
         protected;
共3页: 上一页 1 [2] [3] 下一页

上一篇:中国地质大学(武汉)工程硕士研究生招生简章
下一篇:王姬的丈夫和儿子资料【照片】
收藏本文: Del.icio.us Google书签 Digg Live Bookmark 365Key网摘 天极网摘 和讯网摘 QQ书签 Digbuzz我挖网 该页面添加到 Mister Wong
精彩图片推荐
今日推荐
用户名:新注册) 密码: 匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 最新评论
搜索:
  • 第一视频联播网广告联盟 群视传播文内广告联盟
  • 通过BackLinks卖链接赚美元 注册Text Link Ads 就送25美元
   网站首页 -  关于我们 -  联系我们 -  网站地图 -    RSS订阅 - 网站博客 -  网站投稿 -  链接申请 -  网站留言
Copyright 2007 www.gispark.com All Rights Reserved 闽ICP备06027130号