Windows.h-SetWindowText显示CR-LF字符

拉米·哈山(Rami Hashan)

我正在用Visual c ++编写一个基本程序,该程序允许用户输入文本,然后该程序翻转文本并显示它以供用户复制。该程序运行良好,直到您在EDIT框中添加了回车键。当用户单击以翻转文本时,而不是向下一行,而是显示\ r \ n的实际字符。

有没有一种方法可以显示文本,而不是实际的字符串本身?

这是我设置文本的方式:

wchar_t lpwString[4096];
int length = GetWindowTextW(text->hwnd, lpwString, 4096);
SetWindowText(text->hwnd, flipText(lpwString, length));

这是方法flipText

LPWSTR flipText(wchar_t textEntered[], const int len) {
    wchar_t text[4096];
    wchar_t flipped[4096];
    wcsncpy_s(text, textEntered, len +1);
    wcsncpy_s(flipped, textEntered, len +1);

    for (int i = len -1, k = 0; i > -1; i--, k++)
        flipped[k] = text[i];

    return flipped;
}

“文本”只是我创建的用于存储EDIT框数据的对象。

Matteo意大利

对于编辑框,返回是CR + LF序列,当您反转文本时,您正在将其转换为LF + CR,但无法识别(显示各个字符)。一种简单的解决方法是对反向字符串进行第二次传递,并将所有LF + CR对交换为CR + LF。

顺便说一句,您的flipText函数已严重损坏-您正在执行原始字符串的无用额外副本,并且正在返回指向本地数组的指针,该数组仅在偶然的情况下起作用。一种更简单的方法可能只是在原处反转字符串。

另外,如果您使用的是C ++,则应考虑使用std::string(或std::wstring使用宽字符),这样可以消除整个类的缓冲区寿命/大小问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

是否有Windows文件格式,其中包含<CR>分隔的记录(没有<LF>字符)?

如何使用SetWindowText显示未签名的字符

在NGINX中避免使用CR:LF字符

在记事本中每行末尾显示CR和LF字符

读取 CR/LF 字符时 VBA PPT 错误

ifstream 在行尾读取额外字符 (CR 13 LF 10)

Powershell 字符串保持 CR 和 LF

为什么在Windows> 8上使用CR LF保存文件?

如何在Windows下强制git使用LF而不是CR + LF?

如何在 Java 中检查字符串是否包含回车 (CR) 或换行 (LF) 字符

XSLT:自动行尾调整开关。或者如何在 Windows 上生成单个 LF 字符

Powershell 将我的 xml 文件格式从 UNIX (LF) UTF-8 更改为 Windows (CR LF) UTF-8-BOM

APK的文件名不能包含(NUL,CR,LF)个字符

java.lang.IllegalArgumentException:在方法名称中找到无效字符(CR或LF)

“字符串”实用程序,包括换行(LF)和回车符(CR)

PHP mPDF QR代码,带有特殊字符,如LF和CR

Bash:从变量末尾删除所有特殊字符(不仅仅是 CR 或 LF)

java.lang.IllegalArgumentException:重定向位置中的无效字符(CR / LF)

windows.h-Beep()

有没有办法使Ruby CSV gem在Windows(CR LF)行尾生成CSV?

CR LF notepad ++移除

我的SciTE编辑器(AutoIt)中显示“ CR LF”

用C中的LF替换CR LF

如何修改正则表达式以删除所有字符串,然后删除CR或LF

在字符串的开头和结尾,如何从MC60的每个响应中识别CR和LF?

如何使Windows正确显示Unicode字符?

Windows 10 VersionHelper.h

Windows FTP服务器和客户端未将文件行结尾更改为CR LF

Perl 在 Windows 上将 LF 写为 CRLF