VC+MapX 地图的放大,缩小,漫游,归心功能的实现
2014-04-11 17:04
387 查看
有了前面在主视图中如何创建地图,现在需要给地图加进一些简单的功能。
1、点击 “ResourceView”,点开“ToolBar”前面的加号后双击IDR_MAINFRAME,对工具栏资源进行编辑。我们用鼠标选中某按钮,然后按Del键擦除掉该按钮的像素,从位图编辑器的模板上选择椭圆和直线绘图工具绘制,以便产生如下形式的位图:
再双击该按钮,为其分配ID:ID_MAP_ZOOMIN
2、利用类向导为C***View视图类加入消息控制函数。转到“查看”/“建立类向导”,在Objiect IDs消息框中选中“ID_MAP_ZOOMIN”,然后再Messages消息框中选中COMMAND,再单击“Add Fuction”,然后在Messages消息框中选中UPDATE_COMMAND_UI,再单击“Add Fuction”,最后点击“Edit Code”。
3、为void CMapXGoView::OnMapZoomin() 添加代码
try
{
if(miZoomInTool==MapXObj.GetCurrentTool())
MapXObj.SetCurrentTool(miArrowTool);
else
{
MapXObj.SetCurrentTool(miZoomInTool);
MapXObj.SetMousewheelSupport(miFullMousewheelSupport);
}
}
catch (COleDispatchException *e)
{
e->ReportError();
e->Delete();
}
catch (COleException *e)
{
e->ReportError();
e->Delete();
}
为void CMapXGoView::OnUpdateMapZoomin(CCmdUI* pCmdUI) 添加代码
BOOL bCheck;
if(miZoomInTool==MapXObj.GetCurrentTool())
bCheck=TRUE;
else
bCheck=FALSE;
pCmdUI->SetCheck(bCheck);
4、编译运行程序,即可实现地图的放大功能,放大后的地图如下图所示。
5、同理,我们按照以上的步骤还可以实现地图的缩小,漫游,归心,箭头功能,提供代码如下
地图缩小
void CMapMarkView::OnMapZoomout()
{
// TODO: Add your command handler code here
try
{
if(miZoomOutTool==MapXObj.GetCurrentTool())
MapXObj.SetCurrentTool(miArrowTool);
else
{
MapXObj.SetCurrentTool(miZoomOutTool);
MapXObj.SetMousewheelSupport(miFullMousewheelSupport);
}
}
catch (COleDispatchException *e)
{
e->ReportError();
e->Delete();
}
catch (COleException *e)
{
e->ReportError();
e->Delete();
}
}
void CMapMarkView::OnUpdateMapZoomout(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
BOOL bCheck;
if(miZoomOutTool==MapXObj.GetCurrentTool())
bCheck=TRUE;
else
bCheck=FALSE;
pCmdUI->SetCheck(bCheck);
}
地图漫游
void CMapMarkView::OnMapPan()
{
// TODO: Add your command handler code here
try
{
MapXObj.SetCurrentTool(miPanTool);
}
catch (COleDispatchException *e)
{
e->ReportError();
e->Delete();
}
catch (COleException *e)
{
e->ReportError();
e->Delete();
}
}
void CMapMarkView::OnUpdateMapPan(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
BOOL bCheck;
if(miPanTool==MapXObj.GetCurrentTool())
bCheck=TRUE;
else
bCheck=FALSE;
pCmdUI->SetCheck(bCheck);
}
地图归心
void CMapMarkView::OnMapCenter()
{
// TODO: Add your command handler code here
try
{
MapXObj.SetZoom(m_dInitZoom);
MapXObj.SetCenterX(m_dInitCenterX);
MapXObj.SetCenterY(m_dInitCenterY);
}
catch (COleDispatchException *e)
{
e->ReportError();
e->Delete();
}
catch (COleException *e)
{
e->ReportError();
e->Delete();
}
}
void CMapMarkView::OnUpdateMapCenter(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
}
箭头
void CMapMarkView::OnMapArrow()
{
// TODO: Add your command handler code here
try
{
MapXObj.SetCurrentTool(miArrowTool);
MapXObj.SetMousePointer(miDefaultCursor);
MapXObj.SetMousewheelSupport(miNoMousewheelSupport);
}
catch (COleDispatchException *e)
{
e->ReportError();
e->Delete();
}
catch (COleException *e)
{
e->ReportError();
e->Delete();
}
}
void CMapMarkView::OnUpdateMapArrow(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
BOOL bCheck
9771
;
if(miArrowTool == MapXObj.GetCurrentTool())
bCheck=TRUE;
else
bCheck=FALSE;
pCmdUI->SetCheck(bCheck);
}
1、点击 “ResourceView”,点开“ToolBar”前面的加号后双击IDR_MAINFRAME,对工具栏资源进行编辑。我们用鼠标选中某按钮,然后按Del键擦除掉该按钮的像素,从位图编辑器的模板上选择椭圆和直线绘图工具绘制,以便产生如下形式的位图:
再双击该按钮,为其分配ID:ID_MAP_ZOOMIN
2、利用类向导为C***View视图类加入消息控制函数。转到“查看”/“建立类向导”,在Objiect IDs消息框中选中“ID_MAP_ZOOMIN”,然后再Messages消息框中选中COMMAND,再单击“Add Fuction”,然后在Messages消息框中选中UPDATE_COMMAND_UI,再单击“Add Fuction”,最后点击“Edit Code”。
3、为void CMapXGoView::OnMapZoomin() 添加代码
try
{
if(miZoomInTool==MapXObj.GetCurrentTool())
MapXObj.SetCurrentTool(miArrowTool);
else
{
MapXObj.SetCurrentTool(miZoomInTool);
MapXObj.SetMousewheelSupport(miFullMousewheelSupport);
}
}
catch (COleDispatchException *e)
{
e->ReportError();
e->Delete();
}
catch (COleException *e)
{
e->ReportError();
e->Delete();
}
为void CMapXGoView::OnUpdateMapZoomin(CCmdUI* pCmdUI) 添加代码
BOOL bCheck;
if(miZoomInTool==MapXObj.GetCurrentTool())
bCheck=TRUE;
else
bCheck=FALSE;
pCmdUI->SetCheck(bCheck);
4、编译运行程序,即可实现地图的放大功能,放大后的地图如下图所示。
5、同理,我们按照以上的步骤还可以实现地图的缩小,漫游,归心,箭头功能,提供代码如下
地图缩小
void CMapMarkView::OnMapZoomout()
{
// TODO: Add your command handler code here
try
{
if(miZoomOutTool==MapXObj.GetCurrentTool())
MapXObj.SetCurrentTool(miArrowTool);
else
{
MapXObj.SetCurrentTool(miZoomOutTool);
MapXObj.SetMousewheelSupport(miFullMousewheelSupport);
}
}
catch (COleDispatchException *e)
{
e->ReportError();
e->Delete();
}
catch (COleException *e)
{
e->ReportError();
e->Delete();
}
}
void CMapMarkView::OnUpdateMapZoomout(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
BOOL bCheck;
if(miZoomOutTool==MapXObj.GetCurrentTool())
bCheck=TRUE;
else
bCheck=FALSE;
pCmdUI->SetCheck(bCheck);
}
地图漫游
void CMapMarkView::OnMapPan()
{
// TODO: Add your command handler code here
try
{
MapXObj.SetCurrentTool(miPanTool);
}
catch (COleDispatchException *e)
{
e->ReportError();
e->Delete();
}
catch (COleException *e)
{
e->ReportError();
e->Delete();
}
}
void CMapMarkView::OnUpdateMapPan(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
BOOL bCheck;
if(miPanTool==MapXObj.GetCurrentTool())
bCheck=TRUE;
else
bCheck=FALSE;
pCmdUI->SetCheck(bCheck);
}
地图归心
void CMapMarkView::OnMapCenter()
{
// TODO: Add your command handler code here
try
{
MapXObj.SetZoom(m_dInitZoom);
MapXObj.SetCenterX(m_dInitCenterX);
MapXObj.SetCenterY(m_dInitCenterY);
}
catch (COleDispatchException *e)
{
e->ReportError();
e->Delete();
}
catch (COleException *e)
{
e->ReportError();
e->Delete();
}
}
void CMapMarkView::OnUpdateMapCenter(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
}
箭头
void CMapMarkView::OnMapArrow()
{
// TODO: Add your command handler code here
try
{
MapXObj.SetCurrentTool(miArrowTool);
MapXObj.SetMousePointer(miDefaultCursor);
MapXObj.SetMousewheelSupport(miNoMousewheelSupport);
}
catch (COleDispatchException *e)
{
e->ReportError();
e->Delete();
}
catch (COleException *e)
{
e->ReportError();
e->Delete();
}
}
void CMapMarkView::OnUpdateMapArrow(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
BOOL bCheck
9771
;
if(miArrowTool == MapXObj.GetCurrentTool())
bCheck=TRUE;
else
bCheck=FALSE;
pCmdUI->SetCheck(bCheck);
}
相关文章推荐
- VC+MO实现地图的放大,缩小和漫游
- ArcGIS Engine 开发(一)对地图放大、缩小、漫游、全局等功能
- 实现地图放大(拉框和单击)、缩小(拉框和单击)、漫游操作的简易代码
- ArcGIS for Android实现地图加载、放大缩小及定位功能
- jQuery实现输入框的放大和缩小功能示例
- PhotoView实现放大缩小功能
- Android多点触控技术,实现对图片的放大缩小平移,惯性滑动等功能
- cocos2dx lua实现按钮的放大和缩小功能
- ImageView实现图像的放大缩小和旋转功能
- C# ArcGIS 三维地图 arcgloblecontrol 基础操作 加载地图 漫游 放大 缩小
- 实现MapObject放大,缩小,平移,全图常用功能
- 基于RxPaparazzo实现图片裁剪、图片旋转、比例放大缩小功能
- arcims开发经验总结(2) (地图放大缩小、鹰眼实现逻辑)
- CDC使用技巧之最快最方便的实现放大缩小功能
- pictureBox里用滚轮实现 放大缩小功能
- 在页面里实现DIV放大、缩小的功能
- WebBrowser控件页面内容放大、缩小功能实现
- zoom插件实现图片放大缩小功能
- AE开发中、放大、缩小、漫游、全图的实现
- 利用js简单实现图片的放大缩小功能