Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 检查组合框列表中的字符串_C++_Visual Studio 2010_Combobox - Fatal编程技术网

C++ 检查组合框列表中的字符串

C++ 检查组合框列表中的字符串,c++,visual-studio-2010,combobox,C++,Visual Studio 2010,Combobox,我需要对组合框进行编程,以便在单击复选框1时,“1”将添加到组合框列表中,如果未选中复选框1,则“1”将从列表中删除。与其他复选框类似(如复选框2、复选框3等) 我可以将“1”添加到列表中,但不确定应该使用什么代码来检查和删除。我是这样编码的: void MyProject::OnBnClickedCheckBox1() { if( //ComboBox list does not have "1") { CComboBox *pComboboxCam1 = (C

我需要对组合框进行编程,以便在单击复选框1时,“1”将添加到组合框列表中,如果未选中复选框1,则“1”将从列表中删除。与其他复选框类似(如复选框2、复选框3等)

我可以将“1”添加到列表中,但不确定应该使用什么代码来检查和删除。我是这样编码的:

void MyProject::OnBnClickedCheckBox1()
{
    if( //ComboBox list does not have "1")
    {
        CComboBox *pComboboxCam1 = (CComboBox *)(GetDlgItem(IDC_Cam1Combo));
        pComboboxCam1 = (CComboBox *)(GetDlgItem(IDC_Cam1Combo));
        pComboboxCam1->AddString(_T("1"));  
    }
    else
        //Remove "1" from list
}
使用or方法查找字符串的索引,然后使用该方法将其删除

例如:

void MyProject::OnBnClickedCheckBox1()
{
CButton*pCheckboxCam1=(CButton*)GetDlgItem(IDC_Cam1Check);
cmbobox*pcomboxcam1=(cmbobox*)GetDlgItem(IDC_Cam1Combo);
int index=pcomboxcam1->FindString(-1,_T(“1”);
如果(pCheckboxCam1->GetCheck()==BST\u选中)
{
如果(指数<0)
pcomboxcam1->AddString(_T(“1”);
}
其他的
{
如果(索引>=0)
pcomboxcam1->删除字符串(索引);
}
}

您应该使用FindString函数或FindStringExact函数。它们在组合框中搜索字符串,如果值大于或等于0,则返回索引,如果搜索失败,则返回CB_ERR

CComboBox *pComboboxCam1 = (CComboBox *)(GetDlgItem(IDC_Cam1Combo));
 if( pComboboxCam1->FindStringExact(0,_T("1")) == CB_ERR) // first parameter is the indextStart, second one is the string
    {
    //String not found
    pComboboxCam1 = (CComboBox *)(GetDlgItem(IDC_Cam1Combo));
    pComboboxCam1->AddString(_T("1"));  
    }
    else
    //String found

太神了谢谢。请允许我问一下“FindString(-1,_T(“1”))中的“-1”有什么作用?@m170115根据我在回答中链接的文档:“
nStartAfter
包含要搜索的第一个项目之前的项目的从零开始的索引。当搜索到达列表框底部时,它将继续从列表框顶部返回到
nStartAfter
指定的项目。如果为-1,则从开始搜索整个列表框。“