为什么我的CStatusBar始终是灰色的,但是VC自己的num就可以变成正常状态?我使用下面的代码创建了状态条
//-------------------
// Create status bar:
//-------------------
if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1; // fail to create
} 我在indicators中添加了一个自己的项ID_INDICATOR_AD
static UINT indicators[] =
{
ID_SEPARATOR, ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
ID_INDICATOR_AD
}; ID_INDICATOR_AD实在String table中定义的。 现在在界面下显示出来了,可以改变文字, 但是总是灰色的。我想根据状态改变为不是灰色。看来MSDN,没有找到对应的接口,请问怎么办?
请问一定要自己绘制吗?我觉得这么简单的操作,自己绘制太麻烦了。我也试了CMFStatusBar, 给文字设置颜色后,还是不起效果,始终是灰色。 是不是有些选项没有设置好?
我只要不是灰色的就可以。或者需要两种状态就可以。
//-------------------
// Create status bar:
//-------------------
if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1; // fail to create
} 我在indicators中添加了一个自己的项ID_INDICATOR_AD
static UINT indicators[] =
{
ID_SEPARATOR, ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
ID_INDICATOR_AD
}; ID_INDICATOR_AD实在String table中定义的。 现在在界面下显示出来了,可以改变文字, 但是总是灰色的。我想根据状态改变为不是灰色。看来MSDN,没有找到对应的接口,请问怎么办?
请问一定要自己绘制吗?我觉得这么简单的操作,自己绘制太麻烦了。我也试了CMFStatusBar, 给文字设置颜色后,还是不起效果,始终是灰色。 是不是有些选项没有设置好?
我只要不是灰色的就可以。或者需要两种状态就可以。
static UINT indicators[] =
{
ID_SEPARATOR, ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
ID_INDICATOR_AD
}; CRect rect;
GetClientRect(rect); //获得客户区的大小 if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1; // fail to create
}
m_wndStatusBar.MoveWindow(0, rect.bottom-20, rect.right, 20); //移动状态栏
{
pCmdUI->Enable(TRUE);
}