假设我们的ComboBox有两个条目
下标0----abc
下标1----123
如果想得到下标为0的值,有两种方法:
第一种方法,自己分配内存,然后获取字符串:
//得到条目的值,方法一,需要分配内存,略微麻烦
int nLen = m_ComboBox.GetLBTextLen(0);
TCHAR* pText = new TCHAR[nLen + 1];
m_ComboBox.GetLBText(0, pText);
//使用pText
//删除方法一分配的内存
delete[] pText;
pText = NULL;
第二种方法,使用CString,相对简单容易,推荐:
{
//得到条目的值,方法二,直接使用CString
CString strItemText;
m_ComboBox.GetLBText(0, strItemText);
}
遍历并删除指定字符串条目"abc"
void CTestComboBox000100Dlg::OnBnClickedButtonDel2()
{
// TODO: Add your control notification handler code here
for (int i = 0; i < m_ComboBox.GetCount(); i++)
{
//得到条目的值,方法一,需要分配内存,略微麻烦
int nLen = m_ComboBox.GetLBTextLen(i);
TCHAR* pText = new TCHAR[nLen + 1];
m_ComboBox.GetLBText(i, pText);
//得到条目的值,方法二,直接使用CString
CString strItemText;
m_ComboBox.GetLBText(i, strItemText);
ASSERT(0 == strItemText.Compare(pText));
//删除方法一分配的内存
delete[] pText;
pText = NULL;
//删除字符串为abc的条目
if (0 == strItemText.Compare(_T("abc")))
{
m_ComboBox.DeleteString(i);
break;
}
}
}