Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

CMFCStatusBar pane text

499 views
Skip to first unread message

Drew

unread,
Oct 28, 2009, 12:19:22 PM10/28/09
to
I'm in the process of changing the look of our app to use the new feature
pack controls and have chosen a project of style Visual Studio 2005. I've
added some panes to the CMFCStatusBar in addition to the default provided:
CAPS, OVR, etc. The text in my panes all appear gray and I'm trying to
figure out to make their text black. I've tried adding:

BEGIN_MESSAGE_MAP(CMyMainWnd, CMDIFrameWndEx)
ON_UPDATE_COMMAND_UI_RANGE(ID_FIRST_PANE, ID_LAST_PANE,
OnUpdateStatusBarPanes)
END_MESSAGE_MAP()

void CMyMainWnd::OnUpdateStatusBarPanes(CCmdUI* pCmdUI)
{
m_wndStatusBar.SetPaneTextColor(pCmdUI->m_nID - ID_FIRST_PANE,
COLORREF(RGB(255, 255, 255)));
}

which is as close to an answer as I've found by searching, specifically:

http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/d931dd86-64dc-4372-89bf-4ccb5bd1601d

which I consider less than helpful.

Does anyone have any experience with this? Any help appreciated.

Thanks,
Drew


Jonathan Wood

unread,
Oct 28, 2009, 1:48:06 PM10/28/09
to
This sort of setting is not normally related to the update mechanism of MFC,
although I can see instances where it could be.

I stuck the following line near the end of CMainFrame::OnCreate():

m_wndStatusBar.SetPaneTextColor(0, RGB(255, 0, 0));

And, sure enough, the text in the first pane appears red.

"Drew" <d...@dam.com> wrote in message
news:OTXY1q#VKHA...@TK2MSFTNGP05.phx.gbl...


--
Jonathan Wood
SoftCircuits Programming
http://www.softcircuits.com

Drew

unread,
Oct 28, 2009, 5:46:32 PM10/28/09
to

"Jonathan Wood" <jw...@softcircuits.com> wrote in message
news:Ox5bQb$VKHA...@TK2MSFTNGP05.phx.gbl...

> This sort of setting is not normally related to the update mechanism of
> MFC, although I can see instances where it could be.

----------------
I agree, but refer to the link I posted where a moderator from MSFT marked
the issue I described as answered when the ON_UPDATE_COMMAND_UI(_RANGE) was
proposed.
----------------

>
> I stuck the following line near the end of CMainFrame::OnCreate():
>
> m_wndStatusBar.SetPaneTextColor(0, RGB(255, 0, 0));
>
> And, sure enough, the text in the first pane appears red.

----------------
I tried the way you suggested:

m_wndStatusBar.SetPaneTextColor(pCmdUI->m_nID - ID_FIRST_PANE,
COLORREF(RGB(0, 0, 0)));

at the end of CMainFrame::Create() and sure enough the text in the panes was
black until my view opened at which point it turned gray again. So there's
something else going on here.

Thanks,
Drew
----------------

Jonathan Wood

unread,
Oct 28, 2009, 10:25:59 PM10/28/09
to
"Drew" <d...@dam.com> wrote:

> I tried the way you suggested:
>
> m_wndStatusBar.SetPaneTextColor(pCmdUI->m_nID - ID_FIRST_PANE,
> COLORREF(RGB(0, 0, 0)));
>
> at the end of CMainFrame::Create() and sure enough the text in the panes
> was black until my view opened at which point it turned gray again. So
> there's something else going on here.

Interesting. Are you sure all your previous code was disabled?

My code changes the first pane's text to red and it stays red when I open
various views and switch between them. I haven't spent enough time on this
to know what the issue is but now I wonder if you have some other code doing
something that prevents your app from working like mine.

hgn

unread,
Oct 29, 2009, 10:46:34 AM10/29/09
to
To make the text on the statusbar black you just have to add

pCmdUI->Enable( true );


Drew

unread,
Oct 30, 2009, 12:46:27 PM10/30/09
to
Yes, thank you, that works.

Drew

"hgn" <h...@discussions.microsoft.com> wrote in message
news:8B42B7FB-23EE-4DFB...@microsoft.com...

0 new messages