我在我的一個沙箱MFC應用程序中測試了這個,並確認了這個結果。MFC可編輯組合框自行選擇文本。不想這
如果在可編輯的組合框中選擇了某個項目,下次組合框收到windowspostnging消息時,它會發出一個選擇文本窗口消息來選擇所有文本。
從可編輯組合框中編輯獲取和選擇窗口文本是不可靠的,因此我們添加一個項目並選擇它以更改組合框的文本,這與用戶選擇項目的方式相同。下一次在移動中重新計算一切時,SetWindowPos會導致選擇編輯文本。
覆蓋WindowPosChanging消息有奇怪的結果,因爲組合框實際上忽略了設置它的高度。它對高度值的作用是減去它計算高度應該(根據字體大小),並使用餘下的下拉列表框的高度。爲什麼沒有設置下拉高度的方法超出了我的想象。
所以我唯一能想到的是有一個成員標誌覆蓋seltext消息,並且如果標誌被設置則什麼都不做,但這是一個可怕的解決方案。
有關如何防止文本選擇的任何建議?
你究竟想要什麼?你想要一個組合框的子類? – Ajay
我已經嘗試了繼承組合框。不起作用。我無法攔截髮送的setsel消息。它發生在我收到setwindowpos消息後。沒有關於如何或爲何發生這種情況的文件 –
可能是一個屏幕快照可能會幫助我們來幫助您 – Ajay