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);
[...]
}
精彩评论