c++ - 如何在保留任何以前的格式的同时将文本插入 Win32 中的 Rich Edit 控件

标签 c++

我正在 win32 中开发聊天应用程序。目前我正在为丰富的编辑控件文本动态分配内存,追加新行并使用 SetWindowText 设置新文本。

当带有特定关键字的消息到达时,应用程序会为该行着色并将其附加到聊天窗口。一切安好。收到下一条消息时会出现问题 - 之前的任何格式都会丢失!

如何解决这个问题?

最佳答案

好的,我已经解决了。 Apearantly 我正在用它的未格式化版本替换文本。以下是将文本正确附加到 Rich Edit 控件的方法:

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);

关于c++ - 如何在保留任何以前的格式的同时将文本插入 Win32 中的 Rich Edit 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6267477/

相关文章:

c++ - 引用 C++ 库函数导致任务行为不正确

.net - 无法从 'WCHAR' 转换为 'WCHAR [260]'

c++ - 使用 '&' 创建指向成员错误的指针

c++ - term 不计算为采用 3 个参数的函数

c++ - 指向结构的指针怎么可能是数组呢?

c++ - 将新元素插入已排序的链表时出现段错误

c++ - int **const p 的行为与常量不同

c++ - 前向声明和仿函数

c++ - 为什么 std::sort 比手工编码的 "introsort"更快?

C++ OPENSSL 库 HMAC 函数返回值每次运行时都不一样?