【问题标题】:How to make a combobox with style(CBS_DROPDOWN) non-editable?如何使样式(CBS_DROPDOWN)不可编辑的组合框?
【发布时间】:2015-04-24 08:56:29
【问题描述】:

我想制作一个样式 (CBS_DROPDOWN) 不可编辑的组合框。我搜索了一段时间和所见的任何地方,建议将组合框样式从 CBS_DROPDOWN 更改为 CBS_DROPDOWNLIST 。我应该只使用CBS_DROPDOWN 的组合框,这应该是不可编辑的。

有没有办法做到这一点?如果有的话,谁能帮我解决这个问题。

【问题讨论】:

  • 使用CBS_DROPDOWNLIST的实际问题是什么??
  • 我很确定,没有人要求您使用特定的控件样式,而是要求您实现某些功能。由于您没有告诉我们您真正想要什么,因此您不能期望得到太多帮助。
  • 可能是基于其他状态的行为是动态的,例如在一种模式下,您只能从列表中选择项目,但在另一种模式下,允许用户输入一个值(或从列表中选择),例如选择器与选择器/创建者???

标签: winapi combobox mfc


【解决方案1】:

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

如果你坚持使用CBS_DROPDOWN风格,可以使用CComboBox::GetComboBoxInfo获取编辑字段的HWND,然后发送EM_SETREADONLY消息,也可以子类化拦截用户输入。

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

【讨论】:

    猜你喜欢
    • 2014-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-21
    相关资源
    最近更新 更多