在CComboBox(MFC)中按文本设置选择

时间:2015-09-30 13:13:55

标签: c++ mfc

我有一个DropList类型的CComboBox(即它不可编辑)。什么是用字符串设置当前选择的最简单方法?

我知道我可以使用SetCurSel()按索引设置它,但我希望函数按字符串搜索列表项并设置它。

2 个答案:

答案 0 :(得分:4)

CComboBox :: SelectString怎么样?

"在组合框的列表框中搜索字符串,如果找到该字符串,则在列表框中选择该字符串并将其复制到编辑控件。"

https://msdn.microsoft.com/en-us/library/30ft9e54(v=vs.110).aspx

答案 1 :(得分:3)

您可以调用FindStringExact()获取要选择的字符串的索引,然后将该索引传递给SetCurSel()

yourComboBox.SetCurSel(yourComboBox.FindStringExact(0, yourString));

请注意,在组合框中找不到字符串,-1将传递给SetCurSel(),这将导致任何先前的选择被清除。如果该行为不适合您,您可能希望执行显式测试。

请注意Max's answer应该是新开发项目的首选。但是,SelectString()仅从Windows Server 2003开始支持,因此您可能无法利用它,具体取决于您要支持的平台。