0

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

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

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

我需要它才能在 Windows 7 和 XP 上工作,而不是热衷于旧版本。我使用 MFC。

谢谢你的帮助。

4

1 回答 1

1

您不需要自己的缓冲区,拥有一个缓冲区确实很危险,因为它可能会失去同步。

但是您不需要一次设置整个编辑文本。从文档中:

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

ReplaceSel我想这就是你要找的东西。尽管本文讨论了多行编辑控件,SetSelReplaceSel等可以很好地与单行编辑控件配合使用。

于 2011-05-14T06:53:43.127 回答