none
ribbon控件如何隐藏? RRS feed

  • 问题

  •   我用FindByID得到一个CMFCRibbonProgressBar控件的指针,调用SetVisible(FALSE)函数发现隐藏不了,不知道ribbon控件如何才能隐藏?谢谢!
    2014年8月21日 2:44

答案

  • 搜索了一下,有人报过类似的Bug给MS:
    https://connect.microsoft.com/VisualStudio/feedback/details/414407/cmfcribbonbaseelement-setvisible-does-not-work

    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    • 已标记为答案 Shu 2017 2014年9月2日 9:08
    2014年8月26日 8:48
    版主

全部回复

  • 你好:

           据我所知CMFCR’ibbonProgressBar类既不是继承于CHtmlview 也不是CWnd类,所以他既不能用SetVisible方法也不能用ShowWindowFALSE)方法。如果你一定要隐藏这个进度条的话,首先你要创建一个新的类继承于CMFCR’ibbonProgressBar, 然后重载OnDraw方法,设计你的ondraw方法,类似于这样:

     

    头文件里 class CMyprogressbar : public CMFCRibbonProgressBar { public: CMyprogressbar(); virtual ~CMyprogressbar(); virtual void OnDraw(CDC* pDC); };

    实现

    #include "stdafx.h"
    #include "ribbonTest.h"
    #include "Myprogressbar.h"
    
    // CMyprogressbar
    CMyprogressbar::CMyprogressbar()
    {
    }
    
    CMyprogressbar::~CMyprogressbar()
    {
    }
    
    
    // CMyprogressbar member functions
    void CMyprogressbar::OnDraw(CDC *pDC)
    {
    	BOOL m_bIsVisible=FALSE;
    		if(m_bIsVisible)
    	{
    		CMFCRibbonProgressBar::OnDraw(pDC);
    	}
    }

    这样一来你用CMyprogressbar类创建的progressbar都是不可见的了,我不建议你这样做,没什么实际意义,你可以参照我的代码试一下。

              有什么问题可以继续在论坛里提问。

    Shu Hu


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年8月22日 9:54
  • 试一下这样看看行不行:
    CMFCRibbonBaseElement::GetParentRibbonBar()->ShowPane()

    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    2014年8月23日 2:40
    版主
  • 这个不行,一跑就死
    2014年8月25日 2:02
  • 我的代码吗?额,在我的电脑上可以的啊。

    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年8月25日 2:26
  • 试一下这样看看行不行:
    CMFCRibbonBaseElement::GetParentRibbonBar()->ShowPane()

    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    不是,我说的是这个。
    2014年8月26日 3:23
  • 搜索了一下,有人报过类似的Bug给MS:
    https://connect.microsoft.com/VisualStudio/feedback/details/414407/cmfcribbonbaseelement-setvisible-does-not-work

    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    • 已标记为答案 Shu 2017 2014年9月2日 9:08
    2014年8月26日 8:48
    版主