CRichEditCtrl下如何设置选定字体大小和颜色 大家好: 我建了一个对话框,在其上静态添加了两个richedit框,现实现了一个写字,在另一个里面显示。现在想添加两个按钮,一个设置选定的某个Edit框中的字体和颜色,一个可以实现对发送文件的超链接,即一个Edit里发文件后在另一个里会显示"接收","取消"这样的超超链接。请各个高手指点一二,万分感激!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 设置字体CHARFORMAT cf; ZeroMemory(&cf, sizeof(CHARFORMAT)); cf.cbSize = sizeof(CHARFORMAT); cf.dwMask = CFM_BOLD|CFM_CHARSET|CFM_COLOR|CFM_FACE|CFM_ITALIC|CFM_SIZE|CFM_UNDERLINE|CFM_STRIKEOUT; if (m_bIsBold) { cf.dwEffects |= CFE_BOLD; } if (m_bIsItalic) { cf.dwEffects |= CFE_ITALIC; } if (m_bIsUnderLine) { cf.dwEffects |= CFE_UNDERLINE; } if (m_bIsStrikeOut) { cf.dwEffects |= CFM_STRIKEOUT; } cf.yHeight = abs(m_Font.lfHeight) * 20; cf.crTextColor = m_crFont; cf.bCharSet = (BYTE)m_Font.lfCharSet; _tcscpy((TCHAR *)cf.szFaceName, m_Font.lfFaceName); SetSel(0, -1); SetSelectionCharFormat(cf); SetDefaultCharFormat(cf); SetWordCharFormat(cf); SetSel(0, 0); 设置链接 CHARFORMAT2 cf2; ZeroMemory(&cf2, sizeof(CHARFORMAT2));// cf2.cbSize = sizeof(CHARFORMAT2); cf2.dwMask = CFM_LINK; cf2.dwEffects = CFE_LINK; SendMessage(EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf2); CFontDialog fontDlg;if (fontDlg.DoModal() == IDOK){ BOOL m_bIsBold = fontDlg.IsBold(); BOOL m_bIsItalic = fontDlg.IsItalic(); BOOL m_bIsStrikeOut = fontDlg.IsUnderline(); BOOL m_bIsUnderLine = fontDlg.IsStrikeOut(); .....} 不好意思,再问一下,参量m_crFont怎么得来啊? 我给m_Font定义为LOGFONT结构,m_crFont呢? Edit框中的字体在设置了新的值后字体不能正常显示,缩成了线,不知该如何处理? m_crFont是颜色m_Font.lfHeight需要转化成磅值m_Font.lfHeight = -::MulDiv(-m_Font.lfHeight, 72, dc.GetDeviceCaps(LOGPIXELSY));//磅值 我仔细看了RICHEDITCTRL的文档已经解决了,谢谢! COMBOBOX的背景重绘问题 交互绘图时有颜色的橡皮条怎么实现? VC的免费版如何?似乎只有2008? 急等解决(50分),关于继承的一个问题,代码贴出,望各位高手赐教! 请问如何在对话框上某个位置放置某个控件 关于使用CDaoDatabase创建数据库的问题? 狂散分!!!■■■别人看俺拿钱多,俺笑他们看不穿!■■■来者有分!!! 指纹专题:利用U.are.U的SDK从文件中获得特征数据?(搞指纹的请进<@_@>!) 程序思路求分析 MFC重叠控件的显示和响应问题 使用UDP进行大文件传输中,丢包重传的问题怎么解决呢? 请教大家一个msn文件传输的问题
CHARFORMAT cf;
ZeroMemory(&cf, sizeof(CHARFORMAT));
cf.cbSize = sizeof(CHARFORMAT);
cf.dwMask = CFM_BOLD|CFM_CHARSET|CFM_COLOR|CFM_FACE|CFM_ITALIC|CFM_SIZE|CFM_UNDERLINE|CFM_STRIKEOUT; if (m_bIsBold)
{
cf.dwEffects |= CFE_BOLD;
}
if (m_bIsItalic)
{
cf.dwEffects |= CFE_ITALIC;
}
if (m_bIsUnderLine)
{
cf.dwEffects |= CFE_UNDERLINE;
}
if (m_bIsStrikeOut)
{
cf.dwEffects |= CFM_STRIKEOUT;
}
cf.yHeight = abs(m_Font.lfHeight) * 20;
cf.crTextColor = m_crFont;
cf.bCharSet = (BYTE)m_Font.lfCharSet;
_tcscpy((TCHAR *)cf.szFaceName, m_Font.lfFaceName); SetSel(0, -1);
SetSelectionCharFormat(cf);
SetDefaultCharFormat(cf);
SetWordCharFormat(cf);
SetSel(0, 0);
CHARFORMAT2 cf2;
ZeroMemory(&cf2, sizeof(CHARFORMAT2));//
cf2.cbSize = sizeof(CHARFORMAT2);
cf2.dwMask = CFM_LINK;
cf2.dwEffects = CFE_LINK;
SendMessage(EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf2);
if (fontDlg.DoModal() == IDOK)
{ BOOL m_bIsBold = fontDlg.IsBold();
BOOL m_bIsItalic = fontDlg.IsItalic();
BOOL m_bIsStrikeOut = fontDlg.IsUnderline();
BOOL m_bIsUnderLine = fontDlg.IsStrikeOut();
.....
}
m_Font.lfHeight需要转化成磅值m_Font.lfHeight = -::MulDiv(-m_Font.lfHeight, 72,
dc.GetDeviceCaps(LOGPIXELSY));//磅值