CCombobox

添加项目

// 头部添加
int cmb_idx = m_cmb_marked_mp.AddString(str);
m_cmb_marked_mp.SetItemData(cmb_idx, idx);
m_cmb_marked_mp.SetCurSel(cmb_idx);

// 尾部添加
int cmb_idx = m_cmb_marked_mp.InsertString(-1,str);
m_cmb_marked_mp.SetCurSel(cmb_idx);

获取当前文字

CString str;
m_comboPath.GetLBText(m_comboPath.GetCurSel(), str);

对于可以输入的情况,使用下面的代码获取当前文字
用户输入数据,和选择数据的 index 是不一样的。

CString strPort;
int idx = m_cmb_port.GetCurSel();
// 用户手动输入的情况
if (-1 == idx)
{
m_cmb_port.GetWindowText(strPort);
}
else
{
m_cmb_port.GetLBText(m_cmb_port.GetCurSel(), strPort);
}
if (strPort.IsEmpty())
{
AfxMessageBox(L"请输入串口号,例如:COM1");
return;
}

删除所有项目

m_cmb_force_type.ResetContent();

删除指定项目

删除之后,剩余所有项目的索引自动减一

int idx = m_cmb_marked_mp.GetCurSel();
m_cmb_marked_mp.DeleteString(idx);
idx = m_cmb_marked_mp.GetCount();
if (idx >= 0 )
{
m_cmb_marked_mp.SetCurSel(0);
}