开发者

How to change RibbonStatusBarPane text color?

开发者 https://www.devze.com 2023-01-17 02:49 出处:网络
My application is using MFC Ribbon(VS2008 + Feature pack9). I\'m not able to change RibbonStatus Bar Pane text color.I override the virtual int DrawPaneText(CDC* pDC, const CString& strText, CRect

My application is using MFC Ribbon(VS2008 + Feature pack9). I'm not able to change RibbonStatus Bar Pane text color.I override the virtual int DrawPaneText(CDC* pDC, const CString& strText, CRect rectText, UINT uiDTFlags) function but things are not working.

In non Ribbon Status Bar there is a function void SetPaneTextCol开发者_StackOverflow社区or(int nIndex, COLORREF clrText = (COLORREF)-1 , BOOL bUpdate) in order to change pane text color.

how to do this in MFCRibbonStatusBarPane ?


class MyPane : public CMFCRibbonStatusBarPane
{
public:
    MyPane(){};
    MyPane(
        UINT   nCmdID, 
        LPCTSTR lpszText, 
        BOOL   bIsStatic = FALSE,    
        HICON  hIcon = NULL,
        LPCTSTR lpszAlmostLargeText = NULL)
:CMFCRibbonStatusBarPane(nCmdID,
lpszText,bIsStatic,hIcon,lpszAlmostLargeText){}
MyPane(
    UINT   nCmdID,          
    LPCTSTR lpszText,         
    HBITMAP hBmpAnimationList, list
    int   cxAnimation = 16, 
    COLORREF clrTrnsp= RGB(192,192,192),
    HICON  hIcon = NULL,   
    BOOL   bIsStatic = FALSE)
:CMFCRibbonStatusBarPane(nCmdID,lpszText,
hBmpAnimationList,cxAnimation,clrTrnsp,hIcon,bIsStatic){}

MyPane(
    UINT   nCmdID,
    LPCTSTR lpszText, 
    UINT   uiAnimationListResID,
    int   cxAnimation = 16,
    COLORREF clrTrnsp= RGB(192,192,192),
    HICON  hIcon = NULL, 
    BOOL   bIsStatic = FALSE)
:CMFCRibbonStatusBarPane(nCmdID,lpszText,
uiAnimationListResID,cxAnimation,clrTrnsp, hIcon,bIsStatic){}



 ~MyPane(){};

 virtual COLORREF OnFillBackground(CDC* pDC)override
 {
     return RGB(255,0,0); //return whatever new color you want
 }
};

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
[...]
    m_wndStatusBar.AddElement(new MyPane(ID_STATUSBAR_PANE1, strTitlePane1, TRUE), strTitlePane1);
    m_wndStatusBar.AddExtendedElement(new MyPane(ID_STATUSBAR_PANE2, strTitlePane2, TRUE), strTitlePane2);

[...]
}
0

精彩评论

暂无评论...
验证码 换一张
取 消