如和更改Static Text的字体颜色!高手帮忙!帮顶有分解决方法

如和更改Static Text的字体颜色!!高手帮忙!!!帮顶有分
我知道用OnCtlColor可以更改字体的颜色,而且已经实现了。我希望能够实现如下的功能:
比如   bool   ChangeYN;
if(ChangeYN)
    Text1的颜色为黑色;
else
    Text1的颜色为红色;
这个改如何实现呀。

------解决方案--------------------
更改static控件的id,然后再在OnCtlColor里改。
最好子类化CStatic
------解决方案--------------------
HBRUSH CXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

// TODO: Change any attributes of the DC here

if ( pWnd-> GetDlgCtrlID() == IDC_STATIC1 ) //更改ID
pDC-> SetTextColor(RGB(255,0,0));
if ( pWnd-> GetDlgCtrlID() == IDC_STATIC2 ) //更改ID
pDC-> SetTextColor(RGB(0,255,0));
.....

// TODO: Return a different brush if the default is not desired
return hbr;
}
------解决方案--------------------
在OnCtlColor里写
if ( pWnd-> GetDlgCtrlID() == IDC_STATIC1 )
{
if(m_bChange)
pDC-> SetTextColor(RGB(255,0,0));
else
pDC-> SetTextColor(RGB(0,0,0));
}

在m_bChange改变是要刷新CStatic控件
GetDlgItem(IDC_STATIC1)-> Invalidate();
实验成功!
------解决方案--------------------
更改static的ID,在OnCtlColor里处理,使用SetTextColor。
------解决方案--------------------
除了WM_CTLCOLOR以外,也可以Owner draw
------解决方案--------------------
支持
dazedase(什么也不懂,什么也不会,所以我很菜)(▲▲▲▲)(★★★★)
------解决方案--------------------
.h 中声明
protected:
COLORREF m_TextColor;

.cpp中
::OnInitDialog()
{
m_TextColor= RGB(255,0,0);//这个颜色就随便定了什么颜色都可以这里是为了初始化一下
}

HBRUSH CXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

if ( pWnd-> GetDlgCtrlID() == IDC_STATIC1 ) //对硬要改变颜色的控件
{
pDC-> SetTextColor(m_TextColor);//这里用COLORREF来设置颜色,只要改变m_TextColor得值就能变色
return m_brush;
}
return hbr;
}
在再你需要处理的事件处
if(ChangeYN)
m_TextColor=RGB(0,0,0);//黑色
else
m_TextColor=RGB(255,0,0);//红色
------解决方案--------------------
楼上的可以用,帮顶
------解决方案--------------------
en ,就这样地,顶
------解决方案--------------------
先将Static控件关联变量m_staTitle,接着用下面的代码可为Static控件设置字体.
CFont font;
LOGFONT m_tempfont={30,0,0,0,FW_BOLD,0,0,0,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,_T( "宋体 ")};
font.CreateFontIndirect(&m_tempfont);
m_staTitle.SetFont(&font);
------解决方案--------------------
对话框的话直接在InitInstance()里用SetDialogBkColor(RGB(),RGB());也好的啊
前一个是对话框的背景颜色,后一个是static等的文字颜色~~~~~~~~