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

我可以在列表中添加“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
}

最佳答案

使用 CComboBox::FindString() CComboBox::FindStringExact() 方法查找字符串的索引,然后使用 CComboBox::DeleteString() 方法将其删除。

例如:

void MyProject::OnBnClickedCheckBox1()
{
    CButton *pCheckboxCam1 = (CButton*) GetDlgItem(IDC_Cam1Check);

    CComboBox *pComboboxCam1 = (CComboBox *) GetDlgItem(IDC_Cam1Combo);
    int index = pComboboxCam1->FindString(-1, _T("1"));

    if (pCheckboxCam1->GetCheck() == BST_CHECKED)
    {
        if (index < 0)
            pComboboxCam1->AddString(_T("1"));
    }
    else
    {
        if (index >= 0)
            pComboboxCam1->DeleteString(index);
    }
}

关于c++ - 检查组合框列表中的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58388149/

10-15 07:20