通过一个造航母的小Demo,练习在下拉列表控件中添加、删除选项
一、CComboBox类几个关键的方法
1、插入选项
//AddString:返回int值是列表项的下标,可根据行为中的Sort字段决定是插在末尾,还是进行排序
m_combo.AddString(_T("孙悟空"));
m_combo.AddString(_T("猪八戒"));
m_combo.AddString(_T("沙僧"));
//InsertString:可指定插入位置,返回int值是插入项下标
m_combo.InsertString(0,_T("孙悟空"));
m_combo.InsertString(1,_T("猪八戒"));
m_combo.InsertString(2,_T("沙僧"));
//在OnInitDialog中使用可设置下拉列表的默认值
m_combo.SetCurSel(0);
2、删除选项
//DeleteString:返回int值是剩下字符串的个数,参数为待删除项的下标
m_combo.DeleteString(i);
3、获取列表项总个数
int count = 0;
count = m_combo.GetCount();
4、获取当前选择的项
//获取当前选项的下标
int i = 0;
i = m_combo.GetCurSel();
//进一步获取当前选项的字符串
CString str;
m_combo.GetLBText(i, str);
二、实验程序的关键代码
1、新增列表项
void CtestDlgDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
CString str;
CString str2;
int count = m_combo.GetCount();
m_edit.GetWindowTextW(str);
if(str != _T(""))
{
m_combo.InsertString(count, str);
str2 = _T("新造航母:") + str;
AfxMessageBox(str2);
}
else
{
AfxMessageBox(_T("请为航母命名!"));
}
}
2、删除列表项
void CtestDlgDlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
CString str;
CString str2;
int i = m_combo.GetCurSel();
m_combo.GetLBText(i, str);
m_combo.DeleteString(i);
str2 = _T("退役航母:") + str;
AfxMessageBox(str2);
}
三、效果展示
1、初始状态
2、新增航母
3、淘汰落后航母
补充:
1、如何修改AfxMessageBox弹窗的标题? 在资源视图 -> String Table中新建字符串,并修改ID为AFX_IDS_APP_TITLE,并在标题中修改想要显示的内容。