MFC的Ribbon界面状态栏加添进度条

首先在VS环境下新建一个MFC的Ribbon风格的项目,在CMainFrame::OnCreate()中的状态栏创建位置添加如下代码:

    m_wndStatusBar.AddElement(newCMFCRibbonStatusBarPane(ID_STATUSBAR_PANE1, strTitlePane1,TRUE), strTitlePane1);

    progress = new CMFCRibbonProgressBar(113); 

    m_wndStatusBar.AddElement(progress, _T("进度条"));

即实现了进度条创建。但是比较不完善。

第一是我希望界面能在需要的时候显示和隐藏进度条,但是发现这样创建的进度条始终无法立即隐藏。创建隐藏按钮,响应的实现代码如下:

    CMainFrame* pMain = (CMainFrame*)AfxGetMainWnd();

    pMain->progress->SetVisible(FALSE);

    pMain->progress->Redraw(); 

    pMain->m_wndStatusBar.RedrawWindow();

    pMain->RedrawWindow();

即使让整个界面重绘,进度条也没法立即隐藏,而是需要进行一次向下还原或者最大化以后才能成功。

第二,进度条宽度没办法随界面变化。我的需求是除了状态栏左边和右边,其余都设置成进度条位置,虽然CMFCRibbonProgressBar的构造函数有宽度的设置,但是必须让状态栏CMFCRibbonStatusBar的其他面板绘制之后,才能计算进度条宽度并加入进度条。但这种办法在窗口最大化的时候才有效,如果是界面一开始是小窗口,这种办法就失效了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

charlee44

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值