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;
}
本文详细介绍了如何在MFC应用程序中定制状态栏,包括添加服务器状态和连接数指示器,通过消息映射响应状态变化,以及更新状态栏显示。通过具体代码展示了初始化状态栏布局、设置样式和颜色的方法。
4145

被折叠的 条评论
为什么被折叠?



