在 MFC 中使用 DrawTextEx 自动换行
Word wrap with DrawTextEx in MFC
我需要在矩形内绘制文本。但是当文本很长时,它会剪掉多余的文本。我需要换行文本,以便不适合第一行的多余文本部分应该转到下一行。
我用谷歌搜索过,有人建议使用带有DT_CALCRECT标志的DrawTextEx()而不是DrawText()。但是它仍然不起作用,当我使用此标志时,我没有得到文本。
DRAWTEXTPARAMS lpDTParams;
lpDTParams.cbSize = sizeof(lpDTParams);
lpDTParams.iLeftMargin = 1;
lpDTParams.iRightMargin = 1;
lpDTParams.iTabLength = 4;
lpDTParams.uiLengthDrawn = 0;
pDC->DrawTextExA(sTemp, rc, DT_NOCLIP|DT_CENTER|DT_WORDBREAK|DT_CALCRECT, &lpDTParams);
任何建议将不胜感激。谢谢
您不需要计算矩形。
使用以下标志:DT_LEFT |DT_EDITCONTROL |DT_WORDBREAK。
一条建议:
不要使用 UNICODE 或 ANSI 特定的函数名称。
根据您的项目设置,编译器将选择正确的版本。这样,您的应用程序是可移植的。
相关文章:
- 使用一个考虑到std::map中键值的滚动或换行的键
- 如何防止clang格式在流运算符调用之间添加换行符<<
- C/C++ - 查询平台相关的换行符(用于内存映射文件)
- 在 Stream C++ 文本之前有一个额外的换行符
- 流:CSV 文件中的换行符
- 将缓冲区复制到剪贴板 [换行错误]
- 如何在三元条件运算符中添加换行符和连接? :在 C++ 中
- Clang-格式:在多行语句之后的换行符上打开大括号
- 如何正确转发/换行static_cast?
- 在输出流中插入换行符
- 防止控制台在通道字符(在 c++ 中)中输入空格(即空格、制表符和换行符)
- 创建一个简单的前向迭代器,该迭代器在循环缓冲区的"end"处自动换行
- 使用循环队列和迭代器自动换行
- 如果在循环中给cin一个意外的输入,则会自动输入C++换行符作为输入
- 在 MFC 中使用 DrawTextEx 自动换行
- “cin”是否自动生成换行符
- 使用 WinAPI 使用可变字体/格式的文本自动换行块
- VIM Doxygen支持-换行符上自动插入星号(*)
- 用HTML自动换行?QTableView和delegate
- Libcurl自动将换行替换为换行+回车