将带下划线的文本作为字符串
Get underlined text as strings
假设我有一个非常基本的文本编辑器,就像这里描述的那样:
http://aclacl.brinkster.net/MFC/ch12e.htm
此文本编辑器能够创建、保存和打开包含以下格式化文本的文件:
Loremipsum dolor坐amet,consectetur adipislicing elit,sed do eiusmod tempor incidicount ut labore et dolore magna aliqua。Ut enim ad minim veniam,quis nostrud exercation ullamco labours nisi Utaliquip ex ea commodo consequat。Duis aute irure dolor in reprechenderit in volupate velit esse cillum dolore eu fugiat nulla pariatur。除此之外,我们有时会因为没有提供帮助而受到惩罚,因为官方认为这是一个实验室。
现在想象一下,斜体的文本也是UNDERLINED。
有没有一种方法可以将上面文章中带下划线的文本的每个实例都作为字符串?
此外,是否有一种方法可以获取当前被选为字符串的任何文本?
只是,我想向您展示几种方法之间的线索。
CHARFORMAT cf;
CString text;
GetDlgItemText(IDC_RICHEDIT21, text);
//loop for all text in rich edit control
for(int i = 0; i < text.GetLength(); i++)
{
m_rich->SetSel(0 + i, i + 1); //from start to end character
m_rich->GetSelectionCharFormat(cf);
if(cf.dwEffects & CFE_UNDERLINE) //check whether underline character
{
//get underline character using GetSelText() etc.
}
}
然而,这段代码并不涉及任何性能方面,因此,如果富编辑控件中有许多字符串和下划线字符,则必须检查执行时间等。此外,我认为xMRi的回复是基本和正确的方法。
我还想推荐以下文章。
如何在富编辑控制中以表格格式打印数据
如何从RichEditWinneneneba API获取RTF格式的文本?
- 如何在C++中用std::cout正确显示带十六进制的字符串文本
- 在编译时检查字符串文本的长度
- 读取字符串文本输入以创建 2D 矢量
- 管理字符串文本的最佳做法
- 定义宏以将前缀 0x 添加到十六进制字符串文本
- 无法在模板参数中定义字符串文本
- 不推荐使用 PTCHAR 的字符串文本
- C++ 字符串文本和常量
- C++20字符串文本模板参数工作示例
- 返回从字符串文本创建的静态string_view是否安全?
- 在处理任何字符大小的模板中使用字符串文本
- 是否保证相同内容字符串文本的存储相同?
- 将以 null 结尾的字节字符串转换为原始字符串文本
- 是否可以创建一个用户定义的文本,将字符串文本转换为 own 类型的数组?
- 使用C++中的模板检测不同的字符串文本
- 无法完全专用化字符串文本的模板
- C++ - 确定 const char* 是指向字符串文本对象还是动态对象
- 是否可以在原始字符串文本中插入转义序列?
- C++带有捕获组的正则表达式字符串文本
- 为什么多维数组中的空字符串文本衰减为空指针?