C++中,怎么获取ComboBox选择的项目并修改相应数值

2024-11-23 11:56:35
推荐回答(3个)
回答1:

两种方法。
1)设置0,1,2分别对应10,20,30.
2)从CComboBox中读取字符串,然后判断字符串的值,再赋值给time.

1)(推荐的方法)
首先设置CComboBox的属性为不自动排序。
然后初始化的时候这样写:
((CComboBox*)GetDlgItem(你的CComboBox ID))->AddString("30分");
((CComboBox*)GetDlgItem(你的CComboBox ID))->AddString("20分");
((CComboBox*)GetDlgItem(你的CComboBox ID))->AddString("10分");

读取的时候这样:
UINT nSelected=((CComboBox*)GetDlgItem(你的CComboBox ID))->GetCurSel();
time=(nSelected+1)*10;

2)(Alternate method,not effecient)
UINT nSelected=((CComboBox*)GetDlgItem(你的CComboBox ID))->GetCurSel();
CString str;
((CComboBox*)GetDlgItem(你的CComboBox ID))->GetLBText(nSelected,&str);
然后用str.Compare()判断是哪一个数值。
这种方法对自动排序/不自动排序均适用。但对于项数多的情况要一个一个判断,效率比较低,不推荐使用。

回答2:

CString itemstr;
ComboBox.GetWindowText(itemstr);
int time = 0;
if (itemstr.Compare(_T("10分")))
{
time = 10;
}
else if (itemstr.Compare(_T("20分")))
{
time = 20;
}
else if (itemstr.Compare(_T("30分")))
{
time = 30;
}
else
{
time = -1;
}

回答3:

Search “MFC” pls!