1、访问或调用ComboBox
- 通过GetDlgItem函数获取,如CComboBox* pComboBox = (CComboBox*)GetDlgItem(IDC_COMBO1);
- 创建和控件绑定的变量,详情请查看下一节的内容
2、创建和控件绑定的变量
创建和CComboBox控件绑定的变量选中组合框控件,右键点击控件并选中菜单“Add Variable”,在如下界面中添加一个和控件绑定的变量,如图所示,我定义的变量为:m_ComboBox
点击Finish按钮,"工程名+Dlg.h"中会新增一行CComboBox m_ComboBox;对应的CPP中也会自动增加代码。
3、设置ComboBox的下拉长度
- 1、首先要知道两点:一、那就是在设计界面里,点击一下ComboBox的下拉箭头,此时出现的调整框就是ComboBox的下拉调整框。
- 2、属性里有个 No integral height 钩选项,表示最大长度为设计长度,如果实际内容比设计长度多,就出现滚动条,少就以实际长度显示。
4、常见用法
//访问ComboBox的另外一种方式,等价于m_ComboBox
CComboBox* pComboBox = (CComboBox*)GetDlgItem(IDC_COMBO1);
//添加选项
m_ComboBox.AddString(L"Item1");
m_ComboBox.AddString(L"Item3");
//在指定位置插入选项
m_ComboBox.InsertString(1,L"Item2");
//设置某项为选中项
m_ComboBox.SetCurSel(0);
//获取选中项,下面示例中选中项文本存储在strSelect中,如下2个函数都可以获取
int iSelect = m_ComboBox.GetCurSel();
CString strSelect;
m_ComboBox.GetLBText(iSelect,strSelect);
m_ComboBox.GetWindowText(strSelect);
//删除指定选项
m_ComboBox.DeleteString(1);
//删除或清空所有选项
m_ComboBox.ResetContent();
//通过选中名查找选项所在位置,下面2个查找函数的区别请自行了解
int iIndex = m_ComboBox.FindStringExact(0,L"Item3");
int iIndex2 = m_ComboBox.FindString(0,L"Item3");
// 设置输入框中可输入的最大字符数
m_ComboBox.LimitText(5);
5、添加事件响应函数
右键点击控件并选中菜单“Add Event Handler”,在如下界面中根据需要选择消息类型并添加响应此消息的函数名称,如图所示,我定义的函数名为:OnCbnSelchangeCombo1,消息类型选择的是“选项改变(CBN_SELCHANGE)”。点击Add and Edit按钮即完成函数的添加,且光标自动定位到OnCbnSelchangeCombo1函数的实现代码处。
参考博客