VC 如何获取和改变一个RichEdit控件内的字体
2009-06-19 13:39
549 查看
首先了解一下CHARFORMAT结构
SetDefaultCharFormat( CHARFORMAT& cf ); typedef struct _charformat { UINT cbSize; _WPAD _wPad1; DWORD dwMask; DWORD dwEffects; LONG yHeight; LONG yOffset; COLORREF crTextColor; BYTE bCharSet; BYTE bPitchAndFamily; TCHAR szFaceName[LF_FACESIZE]; _WPAD _wPad2; } CHARFORMAT; 其中bCharSet有如下值 lfCharSet Specifies the character set. The following values are predefined: ANSI_CHARSET BALTIC_CHARSET CHINESEBIG5_CHARSET DEFAULT_CHARSET EASTEUROPE_CHARSET GB2312_CHARSET GREEK_CHARSET HANGUL_CHARSET MAC_CHARSET OEM_CHARSET RUSSIAN_CHARSET SHIFTJIS_CHARSET SYMBOL_CHARSET TURKISH_CHARSET Korean Windows: JOHAB_CHARSET Middle-Eastern Windows: HEBREW_CHARSET ARABIC_CHARSET Thai Windows: THAI_CHARSET
OnChangeFont() 是对话框中一按钮消息响应函数
void CTransformDlg::OnChangeFont() { // TODO: Add your control notification handler code here CHARFORMAT cf; LOGFONT lf; memset(&cf, 0, sizeof(CHARFORMAT)); memset(&lf, 0, sizeof(LOGFONT)); //判断是否选择了内容 BOOL m_bSelect = (m_RichEditCtrlTS.GetSelectionType() != SEL_EMPTY) ? TRUE : FALSE; if (m_bSelect) { m_RichEditCtrlTS.GetSelectionCharFormat(cf); } else { m_RichEditCtrlTS.GetDefaultCharFormat(cf); } //得到相关字体属性 BOOL bIsBold = cf.dwEffects & CFE_BOLD; BOOL bIsItalic = cf.dwEffects & CFE_ITALIC; BOOL bIsUnderline = cf.dwEffects & CFE_UNDERLINE; BOOL bIsStrickout = cf.dwEffects & CFE_STRIKEOUT; //设置属性 lf.lfCharSet = cf.bCharSet; lf.lfHeight = cf.yHeight/15; lf.lfPitchAndFamily = cf.bPitchAndFamily; lf.lfItalic = bIsItalic; lf.lfWeight = (bIsBold ? FW_BOLD : FW_NORMAL); lf.lfUnderline = bIsUnderline; lf.lfStrikeOut = bIsStrickout; sprintf(lf.lfFaceName, cf.szFaceName);
//strcpy(lf.lfFaceName, cf.szFaceName); CFontDialog dlg(&lf); dlg.m_cf.rgbColors = cf.crTextColor; if (dlg.DoModal() == IDOK) { dlg.GetCharFormat(cf); //获得所选的字体属性,如字体、颜色、大小等 if (m_bSelect) m_RichEditCtrlTS.SetSelectionCharFormat(cf); //为选定的内容设定所选字体 else m_RichEditCtrlTS.SetWordCharFormat(cf); //为将要输入的内容设定字体
//m_RichEditCtrlTS.SetDefaultCharFormat(cf); //设置输入框内所有字符的字体,包括已经输入的和将要输入的字符
} }
CFont 说明
CFont font; VERIFY(font.CreateFont( 12, // nHeight 0, // nWidth 0, // nEscapement 0, // nOrientation FW_NORMAL, // nWeight FALSE, // bItalic FALSE, // bUnderline 0, // cStrikeOut ANSI_CHARSET, // nCharSet OUT_DEFAULT_PRECIS, // nOutPrecision CLIP_DEFAULT_PRECIS, // nClipPrecision DEFAULT_QUALITY, // nQuality DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily "Arial")); // lpszFacename
相关文章推荐
- VC里如何改变Static,Edit等控件的字体大小
- VC里如何改变Static,Edit等控件的字体大小
- 如何获取控件字体
- 【mark】如何改变VC中控件间的TAB切换顺序
- 改变对话框上某一个控件的字体和字体大小
- 【VC版】如何获取其他进程中ListView控件中的内容
- VC 如何获取对话框中控件的坐标
- 如何改变CRichEdit字体颜色 vc
- 如何在VC中改变控件的背景色
- 在VC++中改变树状控件子项Item字体和颜色
- [转载]如何改变VC中控件间的TAB切换顺序
- android TextView控件如何解决一个文本中出现不同大小的字体
- 如何改变对话框内控件的字体?
- VC如何获取对话框中控件的坐标
- VC6中如何让改变控件Botton的字体(大小和字体)
- 【Android】如何让一个控件能主动获取到焦点
- VC执行批处理文件并获取结果输出到RichEdit控件
- 【Android】如何让一个控件能主动获取到焦点
- VC改变对话框中所有控件的字体
- 如何改变Static Text控件中文字的字体,字体大小及颜色。