如何操纵CEdit的内容?

时间:2011-05-14 04:58:14

标签: winapi mfc text-editor cedit

我有编辑控制的情况,我需要一些指导。在大多数情况下,文本编辑器通常起作用,但在其他情况下,根据键入前的最后几个字符并根据键入的字符,最后几个字符必须用不同的字符替换。

对我来说显而易见的解决方案是在内容更改之前有一个字符缓冲区,GetWindowText(),将输入的字符添加到缓冲区中,必要时操作缓冲区,然后设置SetWimdowText()。

我知道编辑控件有自己的缓冲区。这是拥有自己的缓冲区的正确方法,还是有方法可以与它共享缓冲区等?编辑器可能没有超过4MB的字符。

我需要这个在Windows 7和XP上运行,而不是对旧版本有用。我使用MFC。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

你不需要你自己的缓冲区,因为它可能会失去同步,所以它确实很危险。

但您不需要立即设置整个编辑文本。来自documentation

  

此外,如果编辑控件是多行的,则通过调用CEdit成员函数GetLine,SetSel,GetSel和ReplaceSel来获取和设置控件文本的一部分。

ReplaceSel是我想要的。虽然本文讨论了多行编辑控件,但SetSelReplaceSel等可以正常使用单行编辑控件。