admin管理员组文章数量:1532199
2023年12月30日发(作者:)
在GIS开发中,地图上的位置信息是很重要的,很多时候都想随时知道某一点的具体地理位置信息。
下面的代码用来实现当鼠标在地图上移动时随时将经纬度显示在状态栏上。
/////1在事件槽中加入事件/////////////////////
ON_EVENT(CSampView, IDC_MAP,
DISPID_MOUSEMOVE,OnMouseMoveInMap,VTS_I2 VTS_I2
VTS_XPOS_PIXELS VTS_YPOS_PIXELS)
////2在头文件中加入函数定义///////////////
BOOL OnMouseMoveInMap(short Button, short Shift, OLE_XPOS_PIXELS x,
OLE_YPOS_PIXELS y);
///3加入实现函数////////////////////////////////
//鼠标在地图上移动时随时将经纬度显示在状态栏上
BOOL CSampView::OnMouseMoveInMap(short Button, short Shift, OLE_XPOS_PIXELS
x,
OLE_YPOS_PIXELS y)
{
/*#if DO_TRACE
TRACE("OnMouseMoveInMap/r/n");
TRACE("Button = %d/r/n",Button);
TRACE("Shift = %d/r/n",Shift);
TRACE("X = %g/r/n",x);
TRACE("Y = %g/r/n",y);
#endif//DO_TRACE
*/
//if(m_rentTool() == miArrowTool)
//{
float fXn,fYn;
double dfXn,dfYn;
CPoint pt;
GetCursorPos(&pt);
fXn = (float)pt.x;
fYn = (float)pt.y;
m_tCoord(&fXn,&fYn,&dfXn,&dfYn,miScreenToMap);
CString str;
CMainFrame* pMainFrame = (CMainFrame*)(AfxGetApp()->m_pMainWnd);
CStatusBar* pStatusBar = &(pMainFrame->m_wndStatusBar);
if(NULL != pStatusBar)
{
("longitude = %f latitude = %f",dfXn,dfYn);
// CClientDC dc(this);
// CSize sz=tExtent(str);
pStatusBar->SetPaneInfo(1,ID_ONMAP_CURRENT_LOCATION,SBPS_NORMAL,);
pStatusBar->SetPaneText(1,str);
}
//}
return TRUE;
}
版权声明:本文标题:经纬度随鼠标在地图上移动随时显示 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1703931967a78446.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论