麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

VC++开发GIS系统(52)补充知识Ribbon界面自定义状态栏

在之前的文章《VC++开发GIS系统(49)屏幕坐标转换编码》和《VC++开发GIS系统(50)使用自定义平面坐标系》中,我使用的方法是点击屏幕,弹出对话框,然后在对话框中显示点击位置的坐标信息。但这只是测试,在实际的应用中一般的GIS软件都会实时显示当前鼠标的坐标信息。所以在后面的文章中将尝试实现实时显示坐标的功能,首先应该学会自定义状态栏。

查看系统自带状态栏代码

系统自带的状态栏代码在MainFrm.cpp中如下:

if (!m_wndStatusBar.Create(this))
{
    TRACE0("未能创建状态栏\n");
    return -1;      // 未能创建
}

CString strTitlePane1;
CString strTitlePane2;
bNameValid = strTitlePane1.LoadString(IDS_STATUS_PANE1);
ASSERT(bNameValid);
bNameValid = strTitlePane2.LoadString(IDS_STATUS_PANE2);
ASSERT(bNameValid);
m_wndStatusBar.AddElement(new CMFCRibbonStatusBarPane(ID_STATUSBAR_PANE1, strTitlePane1, TRUE), strTitlePane1);
m_wndStatusBar.AddExtendedElement(new CMFCRibbonStatusBarPane(ID_STATUSBAR_PANE2, strTitlePane2, TRUE), strTitlePane2);

从上面的代码来看,创建过程分为2步,先是给这个窗格赋一个名称,然后显示这个窗格。其中AddElement是新建在状态栏的左边,AddExtendedElement是新建在状态栏的右边,也就是扩展窗格。如图:

自定义方法

依照上面的代码,依葫芦画瓢。

简化方法

CString strTitlePane1=L"测试窗格";

m_wndStatusBar.AddElement(new CMFCRibbonStatusBarPane(100000, strTitlePane1, TRUE), strTitlePane1);

其中100000是要设置窗格的ID,strTitlePane1是设置窗格的标题,这里可以写死,也可以运行,不过并不推荐这种方法。

官方方法

也可以使用官方的方法来增加状态栏显示的窗格,不过要设置两个ID,一个是IDS_STATUS_PANE1,一个是ID_STATUSBAR_PANE1。

IDS_STATUS_PANE1可以通过资源视图的String Table设置

ID_STATUSBAR_PANE1这个ID可以在解决方案的Resource.h中设置

剩下的就是画瓢就可以了。

麻辣GIS-Sailor
作者:
GIS爱好者,学GIS,更爱玩GIS。
微博关注
手机阅读
赞赏支持
手机阅读
微信捐助麻辣GIS
微信打赏
支付宝捐助麻辣GIS
支付宝打赏

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

3.如果本文对您有所帮助,请您对我们团队进行 打赏捐助让我们在传播3S的路上可以走得更远,不胜感激。PS:如果你是学生党,请优先把经费用于购买学习资料 以及 与小哥哥/小姐姐约会上:-)

如您有疑问,可在文末留言,或到麻辣GIS QQ群中提问。

QQ群(一):291616564 加入QQ群

QQ群(二):166408035 加入QQ群

QQ群(三):627853279 加入QQ群

QQ群(四):436386604 加入QQ群

QQ群(五):606176554 加入QQ群

QQ群(六):946178380 加入QQ群

QQ群(七):861271808 加入QQ群

新疆互助群:910717627 加入QQ群

微信公众号:malagis,扫描右边二维码直接关注。

发表评论