Prev: CSliderCtrl discrepancy between using keys and mouse
Next: SHFileOperation fails when file system redirection si disabled
From: Drew on 28 Oct 2009 12:19 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
From: Jonathan Wood on 28 Oct 2009 13:48 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" <dam(a)dam.com> wrote in message news:OTXY1q#VKHA.5208(a)TK2MSFTNGP05.phx.gbl... > 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 SoftCircuits Programming http://www.softcircuits.com
From: Drew on 28 Oct 2009 17:46 "Jonathan Wood" <jwood(a)softcircuits.com> wrote in message news:Ox5bQb$VKHA.844(a)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 ---------------- > > > > "Drew" <dam(a)dam.com> wrote in message > news:OTXY1q#VKHA.5208(a)TK2MSFTNGP05.phx.gbl... >> 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 > SoftCircuits Programming > http://www.softcircuits.com > >
From: Jonathan Wood on 28 Oct 2009 22:25 "Drew" <dam(a)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. > > Thanks, > Drew > ---------------- >> >> >> >> "Drew" <dam(a)dam.com> wrote in message >> news:OTXY1q#VKHA.5208(a)TK2MSFTNGP05.phx.gbl... >>> 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 >> SoftCircuits Programming >> http://www.softcircuits.com >> >> > > -- Jonathan Wood SoftCircuits Programming http://www.softcircuits.com
From: hgn on 29 Oct 2009 10:46
To make the text on the statusbar black you just have to add pCmdUI->Enable( true ); |