CComboBox的SelectString函数有弊端-m_combo_xxx_.SelectString(0, strTxt); 重复前缀时,有问题

CComboBox的SelectString函数有弊端

CComboBox中字符串通过AddString添加后,

比如 天气1、天气2、天气222,天气234

 

CComboBox调用SelectString(0, _T("天气2"))函数有弊端。可能会选择的是 天气222


应该用for循环判断

m_comBoText.GetWindowText(strText);

if (strText == 你要选择的内容)

  m_comBoText.SetCurSel(i);

 

才可以避免当内容有前缀重复的情况,选择出错。

void CDlgXXX::SetComboBo(CBCGPComboBox& combo, CString strSel)
{
	//m_combo_xxx_.SelectString(0, strTxt);    重复前缀时,有问题
	CString strItem = _T("");
	int iCount = combo.GetCount();
	for (int i = 0; i < iCount; ++i)
	{
		combo.GetLBText(i, strItem);
		if (strItem == strSel)
		{
			combo.SetCurSel(i);
			break;
		}
	}
}

  

posted @ 2024-11-28 16:07  曦花  阅读(15)  评论(0)    收藏  举报