VC++开发GIS系统(54)Ribbon状态栏实时显示坐标
发布时间: 2015-12-18
所属分类: VC++开发GIS系统
有了之前文章《VC++开发GIS系统(52)补充知识Ribbon界面自定义状态栏》做基础,现在可以实现动态显示坐标了,具体方法如下:
在XXXXView.cpp中的onMouseMove函数添加下面的代码:
void CmalagisView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
/*
* 实时显示坐标
*/
//View中获取MainFrame指针
CMainFrame *pMainFrame = (CMainFrame *)AfxGetApp()->m_pMainWnd;
//获取状态栏指针
CMFCRibbonStatusBar *statusBar = (CMFCRibbonStatusBar *)pMainFrame->GetDescendantWindow(AFX_IDW_STATUS_BAR);
//更改坐标
malaPoint MyPoint;
ScreenToCoord(point.x, point.y, mScreen, &MyPoint.x, &MyPoint.y);
CString str;
str.Format(_T("X=%f,Y=%f"), MyPoint.x, MyPoint.y);
statusBar->GetElement(2)->SetText(str);
statusBar->GetElement(2)->Redraw();
CView::OnMouseMove(nFlags, point);
}
其中下面的代码是在view中获取mainframe的中的状态栏的指针。
//View中获取MainFrame指针
CMainFrame *pMainFrame = (CMainFrame *)AfxGetApp()->m_pMainWnd;
//获取状态栏指针
CMFCRibbonStatusBar *statusBar = (CMFCRibbonStatusBar *)pMainFrame->GetDescendantWindow(AFX_IDW_STATUS_BAR);
然后用
statusBar->GetElement(2)->SetText(str);
statusBar->GetElement(2)->Redraw();
状态栏的函数更改文字。效果如下:
如果编译出现下面错误
error C2065: “CMainFrame”: 未声明的标识符
解决方法《VC++开发GIS系统(53)补充知识MFC中View调用CMainFrame未声明的标识符》
本项目代码:GitHub
相关阅读
声明
1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。
2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。
手机阅读
公众号关注
知识星球
手机阅读
最新GIS干货
私享圈子