我需要对组合框进行编程,以便在单击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/