1、在资源视图里面,String Table里面插入两个字符。
2、状态栏指示器结构体indicators中添加声明。
static UINT indicators[] =
{
ID_SEPARATOR, //状态行指示器
//ID_INDICATOR_CAPS,
//ID_INDICATOR_NUM,
//ID_INDICATOR_SCRL,
ID_INDICATOR_SERVER_STS, //服务器状态
ID_INDICATOR_LINK_NUM, //连接数据
};
3、消息映射添加ON_COMMAND_RANGE的宏。
BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWndEx)
ON_COMMAND_RANGE(ID_INDICATOR_SERVER_STS, ID_INDICATOR_LINK_NUM, NULL)
END_MESSAGE_MAP()
4、初始化状态栏。
void CMainFrame::InitStatusBar()
{
int a, b;
//获取状态栏索引号
a = m_wndStatusBar.CommandToIndex(ID_INDICATOR_SERVER_STS); //
b = m_wndStatusBar.CommandToIndex(ID_INDICATOR_LINK_NUM); //
//设置窗格宽度
m_wndStatusBar.SetPaneWidth(a, 250);
m_wndStatusBar.SetPaneWidth(b, 180);
//设置背景颜色
//m_wndStatusBar.SetPaneBackgroundColor(a, RGB(0,32,64));
//m_wndStatusBar.SetPaneBackgroundColor(b, RGB(0,32,64));
//设置文本颜色
m_wndStatusBar.SetPaneTextColor(a, RGB(0, 0, 0));
m_wndStatusBar.SetPaneTextColor(b, RGB(0, 0, 0));
}
5、状态栏更新。
LRESULT CMainFrame::OnUpdateServerStatus(WPARAM wparam, LPARAM lparam)
{
SERVER_INFO si;
CString strServerStatus;
CString strLinkNum;
int a, b;
si = *(SERVER_INFO *)wparam;
a = m_wndStatusBar.CommandToIndex(ID_INDICATOR_SERVER_STS); //
b = m_wndStatusBar.CommandToIndex(ID_INDICATOR_LINK_NUM); //
//m_wndStatusBar.SetPaneTextColor(a, RGB(255, 0, 0));
//m_wndStatusBar.SetPaneTextColor(b, RGB(255, 0, 0));
if (si.bStatus)
{
strServerStatus.Format(_T("服务器:启动"));
m_wndStatusBar.SetPaneText(a, strServerStatus);
}
else
{
strServerStatus.Format(_T("服务器:停止"));
m_wndStatusBar.SetPaneText(a, strServerStatus);
}
strLinkNum.Format(_T("连接:%d"), si.nLinkNum);
m_wndStatusBar.SetPaneText(b, strLinkNum);
return 0;
}