RichEdit控件如何设置字体颜色?

RichEdit控件怎么设置字体颜色??
C/C++ code


CHARFORMAT   cf;   
cf.dwMask   =   CFM_COLOR|CFM_SIZE|CFM_FACE; 
cf.crTextColor   =   RGB(0,255,0);  //这个没用
m_richedit.SetDefaultCharFormat(cf);
m_richedit.SetBackgroundColor(FALSE,RGB(255,0,0));   //设背景色可以 




应该怎么设置字体颜色才行?

------解决方案--------------------
上面的方法是可以的啊
------解决方案--------------------
以下代码,仅供参考:
CString CharFormat;
CharFormat=ini->GetValue ("main","cf");
if(CharFormat.GetLength ()==0)
CharFormat.Format ("%s","cf=134|2|60|0|3221225456|3758096399|隶书|250|0");//我把cf的所有数据保存在ini里,运行的时候获取,然后在下面分配
//所以,你只要设对cf的值,就可以了。
//MessageBox(CharFormat);
char *stopstring;

cf.bCharSet= (BYTE)atoi(CharFormat.Left (CharFormat.Find ('|',0)).GetBuffer ());
CharFormat.Format ("%s",CharFormat.Mid (CharFormat.Find ('|',0)+1,CharFormat.GetLength ()+1));

cf.bPitchAndFamily= (BYTE)atoi(CharFormat.Left (CharFormat.Find ('|',0)).GetBuffer ());
CharFormat.Format ("%s",CharFormat.Mid (CharFormat.Find ('|',0)+1,CharFormat.GetLength ()+1));

cf.cbSize= (BYTE)atoi(CharFormat.Left (CharFormat.Find ('|',0)).GetBuffer ());
CharFormat.Format ("%s",CharFormat.Mid (CharFormat.Find ('|',0)+1,CharFormat.GetLength ()+1));

cf.crTextColor= (COLORREF)atoi(CharFormat.Left (CharFormat.Find ('|',0)).GetBuffer ());
CharFormat.Format ("%s",CharFormat.Mid (CharFormat.Find ('|',0)+1,CharFormat.GetLength ()+1));

cf.dwEffects= strtoul(CharFormat.Left (CharFormat.Find ('|',0)).GetBuffer (),&stopstring,10);
CharFormat.Format ("%s",CharFormat.Mid (CharFormat.Find ('|',0)+1,CharFormat.GetLength ()+1));

cf.dwMask= strtoul(CharFormat.Left (CharFormat.Find ('|',0)).GetBuffer (),&stopstring,10);
CharFormat.Format ("%s",CharFormat.Mid (CharFormat.Find ('|',0)+1,CharFormat.GetLength ()+1));


sprintf(cf.szFaceName,"%s", CharFormat.Left (CharFormat.Find ('|',0)).GetBuffer ());
CharFormat.Format ("%s",CharFormat.Mid (CharFormat.Find ('|',0)+1,CharFormat.GetLength ()+1));

cf.yHeight=atoi(CharFormat.Left (CharFormat.Find ('|',0)).GetBuffer ());
CharFormat.Format ("%s",CharFormat.Mid (CharFormat.Find ('|',0)+1,CharFormat.GetLength ()+1));

cf.yOffset = atoi(CharFormat.Left (CharFormat.Find ('|',0)).GetBuffer ());
CharFormat.Format ("%s",CharFormat.Mid (CharFormat.Find ('|',0)+1,CharFormat.GetLength ()+1));
m_text.SetSel (0,-1);
m_text.SetSelectionCharFormat (cf);


------解决方案--------------------
忘记ZeroMemory和设置cbSize了吧

C/C++ code

CHARFORMAT cf;
ZeroMemory(&cf, sizeof(CHARFORMAT));
cf.cbSize = sizeof(CHARFORMAT);
cf.dwMask = CFM_COLOR;
cf.crTextColor = RGB(0,255,0);
m_richedit.SetDefaultCharFormat(cf);

------解决方案--------------------
探讨
C/C++ code

CHARFORMAT cf;
cf.dwMask= CFM_COLOR|CFM_SIZE|CFM_FACE;
cf.crTextColor= RGB(0,255,0);//这个没用m_richedit.SetDefaultCharFormat(cf);
m_richedit.SetBackgroundColor(FALSE,RGB(255,0,0));//设背景色可以

应该怎么设置字体颜色才行?

------解决方案--------------------
有时如果不调用ZeroMemory对CHARFORMAT进行清空的话,会导致一些设置无法生效的,我之前设置过字体就是这样,加了ZeroMemory以后就没问题。