本文转载自:VC驿站
https://www.cctry.com/thread-297426-1-1.html
1、向下拉框控件添加数据:
a、通过Data属性添加,以分号间隔;
b、向下拉框的结尾添加数据:
m_ComboBox.AddString(_T("1"));
m_ComboBox.AddString(_T("2"));
m_ComboBox.AddString(_T("10"));
m_ComboBox.AddString(_T("20"));
添加完成后,大家发现点什么问题没有?数据的顺序并不是我们添加时候的顺序,不是逐一往尾部添加吗,为什么顺序不对呢?
答案是:调整下控件的 Sort 自动排序属性就可以了。
c、自定义位置插入数据:
m_ComboBox.InsertString(0, _T("1"));
m_ComboBox.InsertString(1, _T("2"));
m_ComboBox.InsertString(2, _T("10"));
m_ComboBox.InsertString(1, _T("20"));
这种插入方式不受 Sort 属性的影响,但是需要提供插入的索引位置。
2、从下拉框删除数据:
m_ComboBox.DeleteString(0); //删除指定索引的数据
m_ComboBox.ResetContent(); //删除全部数据
3、设置下拉框选中某条数据:
m_ComboBox.SetCurSel(1);
参数传递要设置的索引序号,如果不想选中任何一条,那么就传递 -1.
4、获得下拉框当前选中的是哪条数据:
int idx = m_ComboBox.GetCurSel();
返回以0开始的选中的数据索引,如果没选中任何一条数据,则返回 -1.
5、获得指定数据的字符串内容:
TCHAR szText[100] = { 0 };
m_ComboBox.GetLBText(idx, szText);
这样就知道选中的是哪个了,不然告诉你 0,1,2,你怎么知道是什么!
6、下拉控件的类型:
Dropdown:可以从下拉列表中选择一项,也可以自己输入;
Drop List:只能从下拉列表中选择一项,不能修改。
7、控制下拉列表的高度:
a、控件模版中,点击一下 ComboBox 的下拉箭头,此时出现的调整框就是 ComboBox 的下拉框的高度;
b、控件属性中有个 No Integral Height 选项,表示最大高度为设计长度,如果实际内容比设计长度多,就出现滚动条,少就以实际长度显示。
可以将该选项设置为默认的FALSE,即表示最大高度不是设计的高度,而是根据实际内容的高度来决定。
8、下拉框选择改变事件:
响应 CBN_SELCHANGE 事件,在其响应函数中判断当前选中的是哪个!
9、开源控件类:
https://www.codeproject.com/KB/combobox/
https://www.codeproject.com/Articles/489189/Group-Combo-Box
https://www.codeproject.com/Articles/58/CheckComboBox-Control
https://www.codeproject.com/Articles/229/Color-Picker-Combo-Box
https://www.codeproject.com/Articles/81/A-Multi-Column-ComboBox
https://www.codeproject.com/Arti ... truct-in-a-Combobox
10、小作业:
从开源控件类中选一个,自己实践下试试!
具体操作细节见视频教程的演示和讲解!
第6课免费试看,下载地址: