所以我已经浏览了大约五到十个关于使用一系列命令将文本设置到文本框中的 stackoverflow 问题。我已经尝试过 SetWindowText、带有 EM_SETSEL 和 EM_REPLACESEL 的 SendMessage,以及其他一些我想不出来的东西。在大多数情况下,我都是成功的,除了一件奇怪的事情。
当我设置这个特定文本框的文本时,什么都没有出现,没有任何变化。起初我以为我没有正确设置数据。但是,当我使用 Spy++ 或 Winspector 查看文本框的文本时,我所做的更改的正确数据在那里,但不会显示在实际的文本框中。更奇怪的是,当我用我“编辑”的文本框点击返回表单时,spy++ 和 Winspector 的数据会更改为文本框显示的内容。
我和我的一个朋友谈过,他提到这可能是一种比赛条件。我正在尝试编辑此框,并且文本框也正在由其他线程编辑。
如果有人有任何建议,我将不胜感激。
编辑:好的,所以我做了更多的研究来研究导致文本变回问题的原因。我打开 Winspector 并让它观看文本框。从那里我能够识别在文本数据最后一次正确到第一次更改之间发送到窗口的消息。我还将结果导出到带有参数的 xml 文档,但它大约有 680 行长。
以下是消息列表:http: //i.imgur.com/SBCFHK8.png