来自DDX_CBIndex()的错误值

时间:2013-11-24 21:49:43

标签: c++ visual-c++ combobox mfc visual-c++-2010

我有以下

void AggiungiEsameDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_COMBO1, ComboBoxVoti);
CString a;
for (int i = 18; i <= 30; i++)
{
    a.Format(_T("%d"), i);
    ComboBoxVoti.AddString(a);
}


DDX_Text(pDX, IDC_EDIT1,nome);

DDX_CBIndex(pDX, IDC_COMBO1, voto);

}

使用CComboBox类型的ComboBoxVoti和类的成员。

如果我调用ComboBoxVoti.GetCurSel我有准确的索引(18为0,1为19等等)但在voto(由DDX_CBIndex链接)我有18为1,3为19,5为20,7为21等等!! 为什么呢?

1 个答案:

答案 0 :(得分:1)

正如伊戈尔所写,你不应该在每次调用OnInitDialog时添加项目。

您可以使用** if(!pDX-&gt; m_bSaveAndValidate)**来保护它。

在将项目插入其中之前,您应该清除Combobox,将其重置为唯一的初始状态。