RichEdit控件如何设置字体颜色?
RichEdit控件怎么设置字体颜色??
应该怎么设置字体颜色才行?
------解决方案--------------------
上面的方法是可以的啊
------解决方案--------------------
以下代码,仅供参考:
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; 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);
------解决方案--------------------
------解决方案--------------------
有时如果不调用ZeroMemory对CHARFORMAT进行清空的话,会导致一些设置无法生效的,我之前设置过字体就是这样,加了ZeroMemory以后就没问题。