两种方法。
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()判断是哪一个数值。
这种方法对自动排序/不自动排序均适用。但对于项数多的情况要一个一个判断,效率比较低,不推荐使用。
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;
}
Search “MFC” pls!