VC+MapX的GIS开发 主视图中创建地图

1、打开Visual C ++ 6.0 ,转到“文件”/“新建”,选择MFC App Wizard,自己取个工程名称,然后单击确定,选择单文档,直接完成。这样工程就新建好了。

2、将MapX 5.0 的安装目录下的 samples50/C++/CPP 中的MAPX.H和MAPX.CPP拷贝的你新建工程的目录下。

3、点击 工程/增加到工程/文件 ,在弹出的对话框中选择MAPX.H和MAPX.CPP,添加到工程中。添加到工程后,Visual C++开发环境Class View中将显示MapX相关的类,如下图所示

VC+MapX的GIS开发 主视图中创建地图_第1张图片


4、在将包含MapX控件的视图(***view.h)中添加头文件 #include MapX.h,宏定义 #define MAIN_MAP_NAME"CHINA.GST",并在主视图类中添加成员变量

private:

double m_dInitZoom;

double m_dInitCenterX;
double m_dInitCenterY;

然后在***view.cpp中添加成员变量CMapX MapXObj。

5、声明表示用于MapX的控件ID的常数:转到 “查看”/“资源符号”,在弹出的对话框中单击“新建”,键入 IDC_MAP 作为名称,并采用系统提供的缺省值,然后关闭对话框。

6、在类向导中为WM_CREATE,WM_SIZE,WM_SETFOCUS消息创建处理程序:转到 “查看”/“建立类向导”;从Class name的下拉菜单中选择视图类(C***view);在Message框中单击WM_CREATE,然后单击 Add Function 按钮;接着再选择WM_SIZE,添加函数;同样的添加WM_SETFOCUS函数;最后,单击Edit Code。

7、在int CMapXGoView::OnCreate(LPCREATESTRUCT lpCreateStruct) 中添加如下代码

if (!MapXObj.Create(NULL, WS_VISIBLE, CRect(0,0,100,100), this,IDC_MAP))
{
return -1; 
}


try 
{
MapXObj.SetGeoSet(MAIN_MAP_NAME);//指定地图集
MapXObj.SetTitleText("");


m_dInitCenterX=MapXObj.GetCenterX();
m_dInitCenterY=MapXObj.GetCenterY();
m_dInitZoom=MapXObj.GetZoom();

}
catch (COleDispatchException *e) 
{
e->ReportError();
e->Delete();

catch (COleException *e)
{
e->ReportError();
e->Delete();
}


MapXObj.SetRedrawInterval(2000);

在void CMapMarkView::OnSize(UINT nType, int cx, int cy) 中添加代码

MapXObj.MoveWindow(0,0,cx,cy,TRUE);

在void CMapMarkView::OnSetFocus(CWnd* pOldWnd) 中添加代码

MapXObj.SetFocus();

8、编译,运行程序,如下图所示

VC+MapX的GIS开发 主视图中创建地图_第2张图片


你可能感兴趣的:(VC+MapX的GIS开发 主视图中创建地图)