请问怎么改变RichEditView输入的字体??
我用GetRichEditCtrl().SetDefaultCharFormat(cf);改变其默认字体怎么不行啊?
我用GetRichEditCtrl().SetDefaultCharFormat(cf);改变其默认字体怎么不行啊?
解决方案 »
- 求助!!!不同类间定时器问题!
- 在线等 求各位高手指点
- [jiangsheng帮帮忙]关于IE8的新增函数
- 位图按扭的位图来自一个文件,而不是从资源中得到,不知怎么做,困老我好久了,谢谢
- Recordset对象打开的问题。
- 使用CListCtrl::SetBkImage后怎么可以使文字透明?
- 怎么样才能得分?
- error C2065: “m_dwRef”: 未声明的标识符,怎么解决呀?
- 华容道游戏源代码,谁要?
- 谁知道Symantic C++(好象是这个名字)是什么?
- WDM驱动开发时遇到的问题,请老鸟把一下,自学者走头无路了。
- 急!汗了半晚上的问题。 一个关于 _variant_t 类型转换的问题
CHARFORMAT cf/* = GetCharFormatSelection()*/;
GetRichEditCtrl().GetDefaultCharFormat(cf);
cf.cbSize = sizeof(CHARFORMAT);
cf.dwMask = CFM_FACE|CFM_BOLD;
cf.dwEffects = !CFE_BOLD;
strcpy(cf.szFaceName, "Fixedsys");
GetRichEditCtrl().SetDefaultCharFormat(cf);
输入的字体有所改变(和不加这些代码相比),但是不是"Fixedsys"字体。我在OnTime()中又增加了以下代码:
void CMyRichEditView::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
CHARFORMAT &cf = GetCharFormatSelection();
cf.cbSize = sizeof(CHARFORMAT);
cf.dwMask = CFM_FACE|CFM_BOLD;
cf.dwEffects = !CFE_BOLD;
strcpy(cf.szFaceName, "Fixedsys");
SetCharFormat(cf);
CRichEditView::OnTimer(nIDEvent);
}
这时候当我选中输入的文字后,被选中文字变成了"Fixedsys"字体。
真不知道是为什么,这两个地方都设置了相同的字体,为什么输入的时候的字体却不正确呢??
请高手指点。
LOGFONT lf;
memset( (void *)&lf, 0, sizeof( LOGFONT ) );
strcpy( lf.lfFaceName, _t("Fixedsys") ); CFont font;
font.CreateFontIndirect( &lf );
SetFont( &font );
GetRichEditCtrl().SetSel( GetRichEditCtrl().GetTextLength(), -1);
GetRichEditCtrl().SetSelectionCharFormat(cf);
试试。
要不在你的程序中
加
#ifdef _DEBUG
GetRichEditCtrl().GetDefaultCharFormat(cf);
ASSERT((cf.dwMask&(CFM_FACE|CFM_BOLD)) ==
(CFM_FACE|CFM_BOLD));
ASSERT((cf.dwEffects(CFE_FACE|CFE_BOLD)) == !CFE_BOLD);
#endif