我有编辑控制的情况,我需要一些指导。在大多数情况下,文本编辑器通常起作用,但在其他情况下,根据键入前的最后几个字符并根据键入的字符,最后几个字符必须用不同的字符替换。
对我来说显而易见的解决方案是在内容更改之前有一个字符缓冲区,GetWindowText(),将输入的字符添加到缓冲区中,必要时操作缓冲区,然后设置SetWimdowText()。
我知道编辑控件有自己的缓冲区。这是拥有自己的缓冲区的正确方法,还是有方法可以与它共享缓冲区等?编辑器可能没有超过4MB的字符。
我需要这个在Windows 7和XP上运行,而不是对旧版本有用。我使用MFC。
感谢您的帮助。
答案 0 :(得分:1)
你不需要你自己的缓冲区,因为它可能会失去同步,所以它确实很危险。
但您不需要立即设置整个编辑文本。来自documentation:
此外,如果编辑控件是多行的,则通过调用CEdit成员函数GetLine,SetSel,GetSel和ReplaceSel来获取和设置控件文本的一部分。
ReplaceSel
是我想要的。虽然本文讨论了多行编辑控件,但SetSel
,ReplaceSel
等可以正常使用单行编辑控件。