我有一个MFC组合框,特别是从CComboBox
派生的类型,创建为下拉列表框,无需编辑所选条目的可能性,即可选项的简单列表
我做支持 none 所选项目的可能性。我知道我可以只调用SetCurSel(-1)
并且组合框的编辑字段将为空,直到用户选择"正确的"下拉列表中的项目。但我实际上更喜欢显示某种默认文本而不只是空字段。所以我需要做的是设置编辑字段的文字,而不用将该文字添加到项目列表或使该项目用户可编辑。
我在组合框上尝试SetWindowText
,但没有成功。根据评论建议,我还尝试使用GetComboBoxInfo
来获取编辑框(在COMBOBOXINFO::hwndItem
)成员中的句柄并在其上调用SetWindowText
,但这并没有工作要么(GetComboBoxInfo
成功了)。但我无法想象这是一个特别奇怪的用例,所以也许可以通过其他方式?如果有帮助,组合框实际上是所有者(CBS_OWNERDRAWFIXED
)。
答案 0 :(得分:2)
当你已经绘制了组合框时,比你知道的那样
lpdis->itemID == -1
lpdis->itemState
设置了ODS_COMBOBOXEDIT
。所以你可以画任何你想要的东西。
答案 1 :(得分:2)
组合框控件内置了对cue横幅的支持。 MFC的CComboBox
通过CComboBox::SetCueBanner成员公开了它:
提示文本是一个提示,显示在组合框控件的输入区域中。显示提示文本,直到用户提供输入。