MAPX在VC++中应用

// -----------------------------------------------------------------------
// Reference: <MapInfo MapX 5.0 开发人员指南>
// -----------------------------------------------------------------------

<1> 控件加入到工程:

MapInfo MapX 5.0 开发人员指南指出, 不应该采用的方法:Project –> Add To Project –> Components and Controls,找到Registered ActiveX Controls –> MapInfo MapX V5,单击Insert。但是这插入的将是不完整的,不应该采用。

正确的方法:在项目中包含控件示例程序中提供的MapX.cpp和MapX.h文件。把这两个文件拷贝到工程目录下,Project –> Add To Project –> Files,找到MapX.cpp和MapX.h,单击OK。

<2> 控件的创建

假定,工程类型为MFC exe工程,sdi类型,工程向导各选项采用默认设置。注意需要选中ActiveX Control一项。

首先在CView或其派生类中声明成员变量CMapX m_ctrlMap;

然后为控件提供一个资源ID,如IDC_MAP。View –> Resource Symbols,选择New…

重载视图类的OnCreate()函数,也就是创建WM_CREATE消息处理程序。在创建视图时创建MapX控件。

MapX控件的Create()函数有两个原型(见MapX.h),这里我们采用后一个,即非虚函数的那个。

if (!m_ctrlMap.Create(NULL, WS_VISIBLE, CRect(0, 0, 100, 100), this, IDC_MAP))

{return –1;}

为保证控件的大小随着CView窗口的大小变化而变化,重载视图类的OnSize()函数,也就是创建WM_SIZE消息处理程序。可使用m_ctrlMap.MoveWindow(0, 0, cx, cy, TRUE)。

为保证控件可靠地获得焦点,可以重载CView的OnSetFocus(),使控件在视图获得焦点的同时也获得焦点。可使用m_ctrlMap.SetFocus()。

从上面几项操作我们可以注意到:由于CMapX的基类是CWnd,所以窗口的操作和特性等对于MapX控件也是通用的。

 

转载于:https://www.cnblogs.com/frogchao/archive/2010/11/22/1884795.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值