我在我的一个沙箱MFC应用程序中测试了这个,并确认了这个结果。MFC可编辑组合框自行选择文本。不想这
如果在可编辑的组合框中选择了某个项目,下次组合框收到windowspostnging消息时,它会发出一个选择文本窗口消息来选择所有文本。
从可编辑组合框中编辑获取和选择窗口文本是不可靠的,因此我们添加一个项目并选择它以更改组合框的文本,这与用户选择项目的方式相同。下一次在移动中重新计算一切时,SetWindowPos会导致选择编辑文本。
覆盖WindowPosChanging消息有奇怪的结果,因为组合框实际上忽略了设置它的高度。它对高度值的作用是减去它计算高度应该(根据字体大小),并使用余下的下拉列表框的高度。为什么没有设置下拉高度的方法超出了我的想象。
所以我唯一能想到的是有一个成员标志覆盖seltext消息,并且如果标志被设置则什么都不做,但这是一个可怕的解决方案。
有关如何防止文本选择的任何建议?
你究竟想要什么?你想要一个组合框的子类? – Ajay
我已经尝试了继承组合框。不起作用。我无法拦截发送的setsel消息。它发生在我收到setwindowpos消息后。没有关于如何或为何发生这种情况的文件 –
可能是一个屏幕快照可能会帮助我们来帮助您 – Ajay