我正在win32中开发聊天应用程序。目前我正在为丰富的编辑控件文本动态分配内存,添加新行并使用SetWindowText设置新文本。
当消息到达并带有特定关键字时,应用会为该行着色并将其附加到聊天窗口。一切安好。收到下一条消息时出现问题 - 以前的格式丢失了!
如何解决这个问题?
答案 0 :(得分:5)
好的,我已经解决了。我正在用未经过格式化的版本替换文本。以下是将文本正确附加到富编辑控件的方法:
CHARRANGE cr;
cr.cpMin = -1;
cr.cpMax = -1;
// hwnd = rich edit hwnd
SendMessage(hwnd, EM_EXSETSEL, 0, (LPARAM)&cr);
SendMessage(hwnd, EM_REPLACESEL, 0, (LPARAM)stringtoappend);