怎么是编辑框中的字体立即显示

nnnnddfvbjhgfg 2012-12-10 02:45:07
CHARFORMAT cf;
ZeroMemory(&cf, sizeof(CHARFORMAT));
cf.cbSize = sizeof(CHARFORMAT);
cf.dwMask = CFM_BOLD | CFM_COLOR | CFM_FACE |
CFM_ITALIC | CFM_SIZE | CFM_UNDERLINE;
cf.dwEffects = 0;
cf.yHeight = 15*15;//文字高度
cf.crTextColor = RGB(0, 0, 255); //文字颜色
strcpy(cf.szFaceName ,_T("隶书"));//设置字体
m_richedit1.SetSel(-1, -1); //设置处理区域
m_richedit1.SetSelectionCharFormat(cf);
CString strText = "第一句话\r\n";
m_richedit1.ReplaceSel(strText); //m_richEd.PostMessage(WM_VSCROLL, SB_BOTTOM, 0);
Sleep(2000);

strText = "第二句话\r\n";
cf.crTextColor = RGB(255, 0, 0); //文字颜色
m_richedit1.SetSelectionCharFormat(cf);
m_richedit1.ReplaceSel(strText);
他运行的效果是两句话同时出现在控件上;我要怎么修改才能实现下面的效果:
怎么实现运行到红色语句后,空间上立即显示“第一句话”,然后在显示第二句话。我使用的是Rich Edit2.0。
...全文
68 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
nnnnddfvbjhgfg 2012-12-10
  • 打赏
  • 举报
回复
引用 1 楼 roger_ding 的回复:
不要用Sleep,那样只是阻塞当前的处理,等到函数返回,当然是两个文字一起显示 可以用Timer,定时2秒后,调用m_richedit1.ReplaceSel(strText);
好的,已经解决
roger_ding 2012-12-10
  • 打赏
  • 举报
回复
不要用Sleep,那样只是阻塞当前的处理,等到函数返回,当然是两个文字一起显示 可以用Timer,定时2秒后,调用m_richedit1.ReplaceSel(strText);

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧