我有以下几点
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);
}具有ComboBoxVoti类型的CComboBox和类成员。
如果我调用ComboBoxVoti.GetCurSel,我有确切的索引(0表示18,1表示19等等),但在voto (由DDX_CBIndex链接)中,我有1表示18,3表示19,5表示20,7表示21等等!为什么?
发布于 2013-11-25 07:37:11
正如Igor所写的,您不应该在每次对OnInitDialog的调用中添加条目。
您可以使用** if (!pDX->m_bSaveAndValidate) **来保护它。
在插入项目之前,应该清除组合框,将其重置为唯一的初始状态。
https://stackoverflow.com/questions/20181473
复制相似问题