我有一个编辑控件的情况,我需要一些指导。文本编辑器在大多数情况下运行正常,但在其他情况下,根据键入前的最后几个字符和键入的字符,最后几个字符必须替换为不同的字符。
对我来说,显而易见的解决方案是有一个字符缓冲区,在内容更改之前使用GetWindowText(),将键入的字符添加到缓冲区中,如果需要,操作缓冲区,然后使用SetWimdowText()。
我知道编辑控件有它自己的缓冲区。那么,这是拥有我自己的缓冲区的正确方法吗,或者有没有方法可以与它共享缓冲区,等等?编辑器的字符值不能超过4MB。
我需要它在Windows7和XP上运行,而不是老版本。我用的是MFC。
谢谢你的帮助。
发布于 2011-05-14 14:53:43
你不需要你自己的缓冲区,事实上,拥有一个缓冲区将是危险的,因为它可能会失去同步。
但是你不需要一次设置整个编辑文本。从documentation
此外,如果编辑控件是多行的,则通过调用CEdit成员函数GetLine、SetSel、GetSel和ReplaceSel来获取和设置控件的部分文本。
我想ReplaceSel就是你要找的东西。虽然本文讨论的是多行编辑控件,但SetSel、ReplaceSel等可以很好地使用单行编辑控件。
https://stackoverflow.com/questions/5999904
复制相似问题