RichEdit控件在处理EM_REPLACESEL消息中有bug?附一种解决办法

简介: RichEdit控件在处理EM_REPLACESEL消息中有bug?附一种解决办法

在 CmdShell 和 bat_do 中,命令的执行结果会通过EM_REPLACESEL消息添加到RichEdit控件编辑框中,但 ping 等一些命令的执行结果添加到RichEdit控件编辑框中会显示在同一行。

经对比分析ping 等一些命令的执行结果和添加到RichEdit控件编辑框中的结果,发现出现问题的原因在于:ping 等一些命令的执行结果中有一些换行符为 0dh, 0dh, 0ah,这些换行符在添加到 RichEdit控件编辑框的过程中,会被替换为 020h(即空格),于是所有的结果就显示在同一行了。

我的一种解决办法是对ping 等一些命令的执行结果进行处理,把0dh, ……, 0dh,换为 0dh。相应代码为:

;--- Check & skip 0dh series
    ; buffer--保存命令处理结果的内存首地址
    ; bytesRead--命令处理结果长度(字节)
    lea  esi, buffer
    mov  edi, esi
    add  bytesRead, esi
    xor  eax, eax;AL--当前字符, AH--前一字符
@TranBegin:
    cmp  esi, bytesRead
    jg   @TranEnd    mov al, byte ptr [esi]
    cmp al, 0dh
    jne @TranCopy
    cmp ah, 0dh
    jne @SkipTran
@TranCopy:
    mov byte ptr [edi], al
    inc edi
@SkipTran:
    mov ah, al
    inc esi
    jmp @TranBegin
@TranEnd:
相关文章
|
4月前
win32编程 -- 鼠标消息
win32编程 -- 鼠标消息
27 0
|
10月前
|
前端开发
element-ui图标偶现乱码问题的原因和修复方法
之前很老的一个 webpack3 前端项目,用 vue-cli5 重构了一下,根据 vue-cli 文档安装的 sass 版本 ^1.32.7,sass-loader 版本 ^12.0.0,各种自测感觉没问题了就部署到线上了
252 0
SwiftUI—如何快速打开一个警告窗口
SwiftUI—如何快速打开一个警告窗口
220 0
SwiftUI—如何快速打开一个警告窗口
|
Java
修改JDK的经历:两处字体的粗体代码引起的错误
修改JDK的经历:两处字体的粗体代码引起的错误
101 0
|
Web App开发 JavaScript 前端开发
布局的诡异bug合集+解决方法(更新中)
1.元素内部子元素的margin的边界线基准点的问题 论如何生硬起名字!!我反正已经被自己总结的题目绕晕了。。。 “演员”介绍: 外层父元素:蓝色边框; 内部子元素:绿色区域; 粉红色区域是元素内部绿色子元素的margin外边距; 问题说明: 就像上边这样,左边就是bug图,蓝色父元素里边的标签的border的外边距边线以父元素的padding内边线为准了。
925 0
关于Altium Designer 提示发送错误报告解决方法
提示是这样子,,,,,, 稍微有点问题就提示,,,复制也提示,,,,移动也提示,,,,,,算是服了这个软件了.......真是忍无可忍,那就无需再忍,解决掉   以前是安装上一个虚拟的打印机就好了,,,其实这次也是安装上一个虚拟的打印机解决的,,,不过安装了好多个打印机,才安装上一个,,可能我的电...
1409 0