有关CFont,CharFormat,LOGFONT的使用问题 我想对我程序中RichEdit控件中被选定的的文本进行编辑,打开一个CFontDialog对话框,然后相应的改变字体,大小,颜色等,但是dlg.GetCurrentFont()得到的是一个LOGFONT型的数据,用richedite的函数SetSelectionCharFormat()需要的参数是 CHARFORMAT型的,怎么在这两个中进行转换,还有CFont型,这三个有什么关系啊??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我也不太清楚这个有什么关系,但你完全可以指定charformat的成员来设置字体。给你看我的一段代码void CEasyWordDlg::InitRichedits(){ CHARFORMAT cf; memset(&cf, 0, sizeof(cf)); cf.cbSize = sizeof(cf); cf.dwMask = CFM_COLOR | CFM_FACE | CFM_CHARSET | CFM_SIZE; cf.crTextColor = m_Color.crPractise; cf.bCharSet = 0; cf.bPitchAndFamily = 34; cf.yHeight = 350; _tcscpy(cf.szFaceName, _T("Arial")); // 练习窗口 m_rdPractice.SetDefaultCharFormat(cf); m_rdPractice.SetBackgroundColor(FALSE, m_Color.crPractiseBk); // 单词窗口 cf.crTextColor = m_Color.crWord; m_rdWord.SetDefaultCharFormat(cf); m_rdWord.SetBackgroundColor(FALSE, m_Color.crWordBk); // 解释窗口 cf.crTextColor = m_Color.crExplain; cf.bCharSet = 0; cf.bPitchAndFamily = 34; cf.yHeight = 220; _tcscpy(cf.szFaceName, _T("Tahoma")); m_rdMeaning.SetDefaultCharFormat(cf); m_rdMeaning.SetBackgroundColor(FALSE, m_Color.crExplainBk); m_rdPractice.SetEventMask(ENM_KEYEVENTS | ENM_CHANGE); m_rdWord.SetEventMask(ENM_MOUSEEVENTS); m_rdMeaning.SetEventMask(ENM_KEYEVENTS | ENM_MOUSEEVENTS);} 哈哈,终于发现有个函数:CFontDialog::GetCharFormat(CHARFORMAT &) 关于MD5和文件结构 关于关闭"拒绝访问的进程" 关于TabControl控件发消息给父DLG实现“应用”按钮功能 不指定类型delete指针 问下什么品牌的采集卡好点? 如何获得刚刚失去焦点窗口的句柄当激活我自己的程序的时候? 有关CWnd::PreSubclassWindow的问题 CListCtrl中item下的subitem可以是图片吗?我的为什么显示不出来? mfc中有没有同步定时器和异步定时器 这2中 STL对象作为函数参数的一些疑问,求讨论 请问:如何在程序中实现中英文两套菜单? 文件上传到 ftp
给你看我的一段代码
void CEasyWordDlg::InitRichedits()
{
CHARFORMAT cf;
memset(&cf, 0, sizeof(cf));
cf.cbSize = sizeof(cf);
cf.dwMask = CFM_COLOR | CFM_FACE | CFM_CHARSET | CFM_SIZE;
cf.crTextColor = m_Color.crPractise;
cf.bCharSet = 0;
cf.bPitchAndFamily = 34;
cf.yHeight = 350;
_tcscpy(cf.szFaceName, _T("Arial"));
// 练习窗口
m_rdPractice.SetDefaultCharFormat(cf);
m_rdPractice.SetBackgroundColor(FALSE, m_Color.crPractiseBk);
// 单词窗口
cf.crTextColor = m_Color.crWord;
m_rdWord.SetDefaultCharFormat(cf);
m_rdWord.SetBackgroundColor(FALSE, m_Color.crWordBk);
// 解释窗口
cf.crTextColor = m_Color.crExplain;
cf.bCharSet = 0;
cf.bPitchAndFamily = 34;
cf.yHeight = 220;
_tcscpy(cf.szFaceName, _T("Tahoma"));
m_rdMeaning.SetDefaultCharFormat(cf);
m_rdMeaning.SetBackgroundColor(FALSE, m_Color.crExplainBk); m_rdPractice.SetEventMask(ENM_KEYEVENTS | ENM_CHANGE);
m_rdWord.SetEventMask(ENM_MOUSEEVENTS);
m_rdMeaning.SetEventMask(ENM_KEYEVENTS | ENM_MOUSEEVENTS);
}