第一步 创建一个新工程:Query
1创建一个工作目录C:\MyProject
2.启动 Visual Studio2005
3.在工作目录C:\MyProject 下创建一个新应用: Query
注:在SDK选择中,只有Pocket PC2003和Smartphone2003是安装VS2005时自带的,Mobile 5.0的SDK是需要另外安装的,也就是在工程新建之前就安装这个SDK,常用SDK在网上可以下载到。
● 选择使用动态链接库
第二步 配置开发环境
二.1 设置头文件/库文件搜索路径
● 设置头文件搜索路径:Project ->Query Property Pages ->c/c++->General ->Additional Include Directories,如下图。
● 在此路径下加上DOTNET2005:Project ->Query Property Pages ->c/c++->Preprocessor->Preprocessor Definitions,如下图。
● 设置库文件搜索路径:Project ->Query Property Pages ->Linker->General ->Additional Library Directories,如下图。
二.2 在StdAfx.h中包含eSuperMap 5.3 类库头文件
第三步 添加工作空间、地图窗口实例
三.1 在“CQueryApp”中定义变量, 如下图:
三.2 在“CQueryView”中定义成员变量
,如下图:
第四步 设置菜单项并生成消息响应函数
利用eSuperMap,可以很方便地进行地图的基本操作,如放大、缩小、漫游、全幅显示、地图刷新等等。下面以放大、缩小、漫游、全幅显示、地图刷新功能为例予以说明。
四.1 设置文件菜单
修改文件菜单组,在文件菜单组中保留三个菜单项,具体如下:
ID
Caption
ID_FILE_OPEN
打开
ID_FILE_CLOSE
关闭
ID_APP_EXIT
退出
注:修改事件的ID时可以直接在右侧的Menu Editor IMenuEd工具中完成,如下图
四.2 地图操作菜单
添加地图菜单组,在地图菜单组中添加五个菜单项,具体如下:
ID
Caption
ID_MAP_PAN
平移
ID_MAP_ZOOMIN
放大
ID_MAP_ZOOMOUT
缩小
ID_MAP_VIEWENTIRE
全幅显示
ID_MAP_REFRESH
刷新
四.3 生成菜单消息响应函数
1. 选中 CQueryView,点击类似闪电的按钮,可以在这里生成消息响应函数,如下图:
● 可以删除消息响应函数也可以进入编辑消息代码的界面,如下图
四.4 生成鼠标消息响应函数
选中CQueryView,点击如下图的按钮, 可以生成系统消息响应函数如OnLButtonDown、OnLButtonUp函数等,如下图:
第五步 实现消息映射函数
void CQueryView::OnDraw(CDC*pDC)
{
CQueryDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CRect rcClient;
GetClientRect( &rcClient );
//显示地图
m_MapWnd.OnDraw(pDC, rcClient,rcClient);
}
void CQueryView::OnFileOpen()
{
//默认打开第一幅地图,否则新建Untitled地图,等待添加图层
CFileDialog dlgFile(true, _T("pmw|pmw|*.*"), NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,_T("WorkSpace Files (*.pmw)|*.pmw") );
if( dlgFile.DoModal() == IDOK )
{
//如果已经打开工作空间文件,则关闭
if(theApp.m_WorkSpace.IsOpen())
{
theApp.m_WorkSpace.Close();
m_MapWnd.Close();
}
//获得图形文件的完整路径及文件名
CString strFileName = dlgFile.GetPathName();
//打开工作空间
if( theApp.m_WorkSpace.Open( strFileName ) )
{
//与地图窗口关联
m_MapWnd.OnInitialUpdate( &theApp.m_WorkSpace, this );
CSeMaps *pMaps = theApp.m_WorkSpace.GetMaps();
if( pMaps )
{
CSeMapDef MapDef;
//有地图,则打开第一幅
if ( pMaps->GetMapCount() != 0 )
{
CDlgSelect dlg;
dlg.m_bMap = true;
if ( dlg.DoModal() == IDOK )
{
if( pMaps->GetMap( dlg.m_strMapName, MapDef ) )
{
if(m_MapWnd.OpenMap(MapDef))
{
m_MapWnd.Refresh();
}
}
}
}
}
}
}
}
void CQueryView::OnFileClose()
{
m_MapWnd.Close();
theApp.m_WorkSpace.Close();
m_MapWnd.Refresh();
m_bFileOpened = false;
}
void CQueryView::OnMapZoomin()
{
//放大
m_MapWnd.SetAction(CSeDrawParameters::uaZoomIn);
}
void CQueryView::OnMapZoomout()
{//缩小
m_MapWnd.SetAction(CSeDrawParameters::uaZoomOut);
}
void CQueryView::OnMapZoomfree()
{
//自由缩放
m_MapWnd.SetAction(CSeDrawParameters::uaZoomFree);
}
void CQueryView::OnMapPan()
{
//平移
m_MapWnd.SetAction(CSeDrawParameters::uaPan);
}
void CQueryView::OnMapViewEntire()
{
//整幅显示地图
m_MapWnd.SetAction(CSeDrawParameters::uaNull);
m_MapWnd.ViewEntire();
}
void CQueryView::OnMapRefresh()
{//刷新
m_MapWnd.SetAction(CSeDrawParameters::uaNull);
m_MapWnd.Refresh();
}
void CQueryView::OnMapPointSelect()
{
//点选
m_MapWnd.SetAction(CSeDrawParameters::uaPointModeSelect);
}
void CQueryView::OnMapRectSelect()
{
//框选
m_MapWnd.SetAction(CSeDrawParameters::uaRectModeSelect);
}
void CQueryView::OnLButtonDown(UINT nFlags, CPoint point)
{
m_MapWnd.OnLButtonDown(nFlags,point);//重载
CView::OnLButtonDown(nFlags, point);
}
void CQueryView::OnLButtonUp(UINT nFlags, CPoint point)
{
m_MapWnd.OnLButtonUp(nFlags,point);//重载
CView::OnLButtonUp(nFlags, point);
}
void CQueryView::OnMouseMove(UINT nFlags, CPoint point)
{
m_MapWnd.OnMouseMove(nFlags,point);//重载
CView::OnMouseMove(nFlags, point);
}
第六步 下载程序所依赖的库和数据到模拟器中
1.Tools -> Remote File Viewer , 选择 Pocket PC 2003 Emulation
2. 点击Program Filees 目录,准备往 Pocket PC 2003 Emulation\Program Filees\目录 导入执行程序所依赖的库(RSFC\Bin\VC8\PocketPC2003\Emulator动态库 ),如下图:
3. 往 Pocket PC 2003 Emulation\Program Filees\ 目录逐个导入执行程序所依赖的库( emulator 动态库 ), 如下图:
4. 往 Pocket PC 2003 Emulation\My Documents\ 目录逐个导入所使用的数据, 如下图:
● 如下图,将该路径下四个选中的VS 2005库文件导入到模拟器中
● 导入eSuperMap的lic文件
第七步:编译、运行程序
● 部署成功
● 打开北京市地图
至此,eSuperMap开发的简单的范例工程就已经做好,这里只是做了一个简单的介绍,抛砖引玉,希望大家在此基础上利用eSuperMap开发出更加实用优秀的工程。
文档已经阅读完毕,请返回上一页!
本文档为【VS2005快速开发】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。