使用VC++创建MapX控件步骤
from:http://blog.csdn.net/zhihu008/article/details/7777227
使用VC++创建MapX控件步骤如下:
第一步:用VC++的程序向导来创建一个单文档程序MapXSample。
第二步:Project> Add To Project>Files,选择MapX.cpp和MapX.h。
在您的项目中包括MapX.cpp和.h文件。这两个文件包含用于对MapX控件进行访问的类定义和方法实现。MapX.h 和 MapX.cpp 文件可能位于安装有 MapX 的 Samples50\CPP 子目录中.利用VC++ 环境下的应用程序生成向导创建一单文档应用程序MapSample后,将MapX.h和MapX.cpp文件拷贝到当前工程路径下,然后从Project菜单中选择Add to Project >Files命令,此时打开Insert Files into Project对话框,选择MapSample文件夹下的MapX.h和MapX〉cpp文件加入到工程中。
警告:不要选择Project菜单中的Add to Project > Components And Controls命令。这样做将会创建一个.cpp文件,但该文件将是不完整的。我一开始就是这么做的,结果很多常用函数都没有,郁闷了我很长时间。希望大家一起要切记这一点。
第三步:在将包含该控件得视图(MapXSampleView.h)中包括它:#include "MAPX.H"
警告:如果在MapXSampleView.cpp中包含#include "MAPX.H"而不是在MapXSampleView.h中就会出现错误,与通常的思维有些不同!error C2501: 'm_ctrlMapX' : missing storage-class or type specifiers!不知道什么原因,我调了好长时间才改过来,网上遇到这种错误也没有能够改正。
第四步:在MapXSampleView.h中定义一个CmapX对象。
class CMapxSampleView : public CView
{
……
protected:
CMapX m_ctrlMapX;//声明类的实例
……
}
第五步:声明表示用于MapX的控件ID的常数。View > Resource Symbols>New>name为IDC_MAP。
第六步:在类向导(ctrl+w)中为CMapXSampleView创建WM_SIZE 和 WM_CREATE的处理消息函数:
void CMapxSampleView::OnCreate(UINT nType, int cx, int cy)
{
m_ctrlMapX.Create(NULL, WS_VISIBLE, CRect(0,0,100,100), this,IDC_MAP);
}
void CMapxSampleView::OnSize(UINT nType, int cx, int cy)
{
CView::OnSize(nType, cx, cy);
m_ctrlMapX.MoveWindow(0,0,cx,cy,TRUE);
}
第七步:在类向导中为CMapXSampleView创建WM_SETFOCUS的处理消息,以确保当窗口处于活动状态时得到焦点。
void CMapxSampleView::OnSetFocus(CWnd* pOldWnd)
{
CView::OnSetFocus(pOldWnd);
m_ctrlMapX.SetFocus();
}
第八步:编译运行。
阅读(1795) | 评论(0) | 转发(0) |