combo的索引没有进行传递

初始化combo框内的下拉值后,向利用下拉值的索引来设定三个int类型的数值,可是不知道为什么不管选定下拉框中的哪一个选项,系统只会传递第一个下拉值的索引的指定int数值,函数贴在下面,哪里出了问题?

BOOL CSetParaColDlg::OnInitDialog() 
{
    CDialog::OnInitDialog();
    
    // TODO: Add extra initialization here
    m_combo.InsertString(0, _T("DataLogger")); 
    m_combo.InsertString(1, _T("DataUp"));
    return TRUE;  // return TRUE unless you set the focus to a control
                  // EXCEPTION: OCX Property Pages should return FALSE
}

void CCsvConvertToDtsView::OnSetParaColumn() 
{
    // TODO: Add your command handler code here
    CSetParaColDlg setParaColDlg;

    setParaColDlg.m_nTimePosition  = m_nTimeColumn;
    setParaColDlg.m_nSpeedPosition = m_nSpeedColumn;
    setParaColDlg.m_nDepthPosition = m_nDepthColumn;
    
    if(IDOK==setParaColDlg.DoModal())
    {
        if(setParaColDlg.m_combo.GetCurSel() == 0)
        {
           m_nTimeColumn = 2;
           m_nSpeedColumn = 6;
           m_nDepthColumn = 7;
        }
        else if(setParaColDlg.m_combo.GetCurSel() == 1)
        {
           m_nTimeColumn = 1;
           m_nSpeedColumn = 7;
           m_nDepthColumn = 8;
        }
    }
}


我发现这样写获取的并不是当前选中的位置的索引 但是不知道应该怎样修改

【以下回答由 GPT 生成】

首先,根据提供的代码,没有问题代码,因此可以排除代码本身的问题。问题可能是在CSetParaColDlg类的设计中。

根据您提供的代码,很可能是在CSetParaColDlg类的定义中,m_combo控件的变量没有正确地与对话框编辑控件进行关联。请确保以下两个方面已正确设置:

  1. CSetParaColDlg类的头文件中,使用类向导生成的DDX_Control宏来关联m_combo变量和对话框上的实际编辑控件。例如:
CComboBox m_combo; // 在 CSetParaColDlg 类的头文件中

// 在 OnInitDialog() 函数中,使用 DDX_Control 宏关联控件和对应的变量
DDX_Control(pDX, IDC_COMBO1, m_combo); // 在 CSetParaColDlg 类的 DoDataExchange() 函数中

确保IDC_COMBO1与您实际对话框编辑控件的ID一致。

  1. 在对话框资源文件 (.rc) 中,确保添加了一个下拉框控件且ID与上述代码中的ID一致。例如:
COMBOBOX IDC_COMBO1,50,38,100,100,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP

确保IDC_COMBO1与您代码中使用的ID一致。

如果您完成了上述两个步骤,但问题仍然存在,请提供更多关于CSetParaColDlg类和相关对话框资源的代码,以便进一步分析问题的原因。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^