1.设置控件
typedef enum
{
E_CLIENT_STATIC_iniTxt =1,//ini配置信息
E_CLIENT_STATIC_BeginTime//开始运行时间
}E_Client_Static_Index;
volatile BOOL m_b_Static_iniTxt;//ini配置信息FALSE表示正常显示,TRUE时显示红色
volatile BOOL m_b_Static_BeginTime;//开始运行时间
CStatic m_Static_iniTxt;//ini配置信息
CStatic m_Static_BeginTime;//开始运行时间
HBRUSH OnCtlColor( CDC* pDC,CWnd* pWnd,UINT nCtlColor );
2.消息映射
ON_WM_CTLCOLOR()
3.创建控件
//第一排
m_Static_iniTxt.Create(_T(""), WS_CHILD|WS_VISIBLE|SS_LEFT |WS_BORDER,rec,this);
//第二排
rec.top +=30;
rec.bottom = rec.top+25;
rec.left =77 +207*0;
rec.right = rec.left +205;
m_Static_BeginTime.Create(_T(""), WS_CHILD|WS_VISIBLE|SS_LEFT |WS_BORDER,rec,this);
4.改变文字
void CClientDlg::StatusTitleSetText(E_Client_Static_Index eIndex, CString s) //更新状态栏
{
switch(eIndex)
{
case E_CLIENT_STATIC_iniTxt://ini配置信息
m_Static_iniTxt.SetWindowText(s);//ini配置信息
break;
case E_CLIENT_STATIC_BeginTime://开始运行时间
m_Static_BeginTime.SetWindowText(s);//开始运行时间
break;
default:
break;
}
break;
}
5.改变颜色
void CClientDlg::StatusTitleSetFocusNormal(E_Client_Static_Index eIndex, BOOL bflag)//
{
switch(eIndex)
{
case E_CLIENT_STATIC_iniTxt://ini配置信息
m_b_Static_iniTxt = bflag;
m_Static_iniTxt.Invalidate();
break;
case E_CLIENT_STATIC_BeginTime://开始运行时间
m_b_Static_BeginTime = bflag;
m_Static_BeginTime.Invalidate();
break;
default:
break;
}
}
5.改变颜色
HBRUSH CClientDlg::OnCtlColor( CDC* pDC,CWnd* pWnd,UINT nCtlColor )
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
HBRUSH returnhbr = hbr;
//如果为静态框
//红绿两种对应static text控件的画刷
static HBRUSH brushFocus = ::CreateSolidBrush(RGB(250,0,0));
static HBRUSH brushNormal = ::CreateSolidBrush(RGB(254,254,254));
COLORREF colorFocus = RGB(250,0,0);
COLORREF colorNormal = RGB(254,254,254);
if (IDC_LIST_TICKET_DEBUG ==pWnd->GetDlgCtrlID() )
return returnhbr;
if (CTLCOLOR_STATIC == nCtlColor)
{
enum
{
E_NULL,//没有更新状态栏
E_NORMAL,//状态栏普通模式
E_FOCUS//状态栏高亮模式
};
int siStatusflag = E_NULL;
if (m_Static_iniTxt == *pWnd)
{
if (m_b_Static_iniTxt)
{
siStatusflag =E_FOCUS;
}
else
{
siStatusflag =E_NORMAL;
}
}
else if (m_Static_BeginTime == *pWnd)
{
if (m_b_Static_BeginTime)
{
siStatusflag =E_FOCUS;
}
else
{
siStatusflag =E_NORMAL;
}
}
if (E_FOCUS ==siStatusflag)
{
//状态栏中有高亮
pDC->SetBkColor(colorFocus);
returnhbr = brushFocus;
return returnhbr;
}
else if (E_NORMAL ==siStatusflag)
{
//状态栏无高亮
pDC->SetBkColor(colorNormal);
returnhbr = brushNormal;
return returnhbr;
}
else
{
}
}
return returnhbr;
}