用MFC做了一个CComboBox的界面
CComboBox的“数据”属性里面C_SVC;NU_SVC;ONE_CLASS;EPS_SVR;NU_SVR;
这样加入了内容。
在我还没有写界面的OnInitDialog()函数之前
CComboBox的内容可以正常显示出来。
但是我写了OnInitDialog()函数之后CComboBox的内容就看不见了我是不是该在OnInitDialog()里面写点什么让他显示?
求高手指点

解决方案 »

  1.   

    BOOL CDlgSVMParams::OnInitDialog()
    {
    CvFileStorage* fsCLFParam = cvOpenFileStorage("ClfParam.xml",0,CV_STORAGE_READ);
    CvFileNode *ClfNode = cvGetFileNodeByName(fsCLFParam,0,"ClassifierParamas");
    int SVMtype = cvReadIntByName(fsCLFParam,ClfNode,"SVMtype");
    int Kerneltype = cvReadIntByName(fsCLFParam,ClfNode,"Kerneltype");
    const char* Degree = cvReadStringByName(fsCLFParam,ClfNode,"Degree");
    const char* Gamma = cvReadStringByName(fsCLFParam,ClfNode,"Gamma");
    const char* Coef = cvReadStringByName(fsCLFParam,ClfNode,"Coef");
    const char* CAValue = cvReadStringByName(fsCLFParam,ClfNode,"CAVlue");
    const char* Nu = cvReadStringByName(fsCLFParam,ClfNode,"Nu");
    const char* P = cvReadStringByName(fsCLFParam,ClfNode,"P");
    const char* SVMname = cvReadStringByName(fsCLFParam,ClfNode,"SVMname");
    const char* SVMtail = cvReadStringByName(fsCLFParam,ClfNode,"SVMtail");
    USES_CONVERSION;
    ((CEdit *)GetDlgItem(IDC_EDITDegree))->SetWindowText(A2T(Degree));
    ((CEdit *)GetDlgItem(IDC_EDITGamma))->SetWindowText(A2T(Gamma));
    ((CEdit *)GetDlgItem(IDC_EDITCoef))->SetWindowText(A2T(Coef));
    ((CEdit *)GetDlgItem(IDC_EDITCValue))->SetWindowText(A2T(CAValue));
    ((CEdit *)GetDlgItem(IDC_EDITNu))->SetWindowText(A2T(Nu));
    ((CEdit *)GetDlgItem(IDC_EDITP))->SetWindowText(A2T(P));
    ((CEdit *)GetDlgItem(IDC_EDITClassifierName))->SetWindowText(A2T(SVMname));
    ((CEdit *)GetDlgItem(IDC_EDITClassifierTail))->SetWindowText(A2T(SVMtail));
    //m_cmbSVMType
    //m_cmbSVMType.SetCurSel(0);
    //m_cmbKernelType.SetCurSel(2);
    cvReleaseFileStorage(&fsCLFParam);
    return true;
    }
    我把OnInitDialog()函数贴上来
    本来是想通过读取xml文件给CComboBox 
    //m_cmbSVMType.SetCurSel(0);
    //m_cmbKernelType.SetCurSel(2);
    赋初值。
    但是CComboBox 在这里面并没有内容,赋值会崩溃。
    把这两条注释掉之后就发现CComboBox 内容空掉了。
    如果去掉OnInitDialog()内容就出现了
    上网打出找也解决不了
    只能请教各位了
      

  2.   

    在OnInitDialog()中初始化ComboBox中的数据:
    m_combox.AddString(L"C_SVC");
    m_combox.AddString(L"NU_SVC");
    m_combox.AddString(L"ONE_CLASS");
    m_combox.AddString(L"EPS_SVR");
    m_combox.AddString(L"NU_SVR");
      

  3.   

    从代码中没有看到你往m_cmbSVMType中添加选项啊
    m_cmbSVMType.AddString(...);
    没有选项,
    m_cmbSVMType.SetCurSel(0);
    m_cmbKernelType.SetCurSel(2);
    操作可能就出错了
      

  4.   

    哦~要在OnInitDialog()
    中再添加一次啊
    我试试
      

  5.   

    特别感谢二楼
    是我忘了调基类的OnInitDialog()
    所以数据里面的内容显示不出来
    调用了基类就不用m_cmbSVMType.AddString();了