我有一个DropList
类型的CComboBox(即它不可编辑)。什么是用字符串设置当前选择的最简单方法?
我知道我可以使用SetCurSel()
按索引设置它,但我希望函数按字符串搜索列表项并设置它。
答案 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开始支持,因此您可能无法利用它,具体取决于您要支持的平台。