在使用Ribbon的MFC程序状态栏中显示鼠标坐标值

     这两天在练习程序中需要获取鼠标当前点的坐标值,以前使用的MFC Standard风格中可以使用CStatusBar中的SetPaneText方法来设置。但是使用了Ribbon风格后,我们可以从MainFrame中看到相应的类已经变为:在VS Ribbon界面下,CMainFrame类包含了三个成员变量:m_wndRibbonBar、 m_MainButton、m_wndStatusBar,分别用于控制VS Ribbon界面的命令面板,应用程序按钮和状态栏。清楚了各个变量对应的 VS Ribbon界面元素后,我们就可以操作相应的成员变量,在VS Ribbon界面上添加我们需要的内容。


   在Ribbon下没有CStatusBar,怎么更新呢?我在网上搜了半天也没找到结果,到国外的网站也看了看,有几个可能有结果的还没屏蔽了,无语中。。。后来又找MSDN,在运气的帮助下,找到了一个方法,我不知道这个方法有没有什么副作用,不过至少要求的功能实现了。好了,直接上代码。


   在View类中实现OnMouseMove(UINT nFlags, CPoint point),其中代码如下:

        CString str;
        str.Format("鼠标指针的当前坐标(X:%d, Y:%d)", point.x, point.y);  
        CMainFrame *pFrame=(CMainFrame*)AfxGetApp()->m_pMainWnd;
        CMFCRibbonStatusBar* statusBar = (CMFCRibbonStatusBar*)&pFrame->m_wndStatusBar;
        statusBar->SetInformation(str);

   在这里使用了CMFCRibbonStatusBar::SetInformation,成功。

        void SetInformation(LPCTSTR lpszInfo);
Remarks:       

Use this method to put the status bar in the information mode. In this mode, the status bar hides all panes and displays the information string specified bylpszInfo.

When lpszInfo is NULL, the status bar reverts to regular mode.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值