如何使一个带有样式的组合框(CBS_DROPDOWN)不可编辑?

时间:2015-04-24 08:56:29

标签: winapi combobox mfc

我想制作一个带有样式(CBS_DROPDOWN)的组合框作为不可编辑的。我用谷歌搜索了一段时间以及我所见过的建议将组合框样式从CBS_DROPDOWN更改为CBS_DROPDOWNLIST。我应该只使用CBS_DROPDOWN的组合框,这应该是不可编辑的。

有没有办法完成这项工作?如果有的话,任何人都可以帮助我解决这个问题。

1 个答案:

答案 0 :(得分:3)

正如您所提到的,可以使用CBS_DROPDOWNLIST样式。使用此样式是将编辑控件设置为只读的常规方法,因为根本没有编辑字段。

如果您坚持使用CBS_DROPDOWN样式,则可以使用CComboBox::GetComboBoxInfo获取编辑字段的HWND,然后您可以发送EM_SETREADONLY消息,或者您可以还将其子类化以拦截用户输入。

这是一个简单的答案,不知道你真正想做什么和期望。