m_Page2是PropertySheet的一个添加的对话框类,但是无论如何,就是调用组合框类不成功,代码如下:在头文件中的定义:
CComboBox m_ZGzufen;
CComboBox m_Qgzufen;在应用文件的绑定:
DDX_Control(pDX, IDC_COMBO_ZGZUFEN, m_ZGzufen);
DDX_Control(pDX, IDC_COMBO_QGZUFEN, m_Qgzufen);在具体类中的调用:
CString str;
m_Page1.m_Listbox.GetText(i,str);
m_Page2.m_Qgzufen.InsertString(i,str);
m_Page2.m_ZGzufen.AddString(str);
哪一位高手帮帮忙了,菜鸟在此谢过了
问题补充:m_Page1已经是PropertyPage类了!就是对它中间的组合框调用的一运行到下面这两个语句中的一个:
m_Page2.m_Qgzufen.InsertString(i,str);
m_Page2.m_ZGzufen.AddString(str);
就会报错,
弹出对话框,说:Debug Assertion Failed!
然后终止程序。
往组合框下拉框中添加的str也无法加入!

解决方案 »

  1.   

    先调用SetActivePage(m_Page2);否则该界面不会被初始化
      

  2.   

    这段代码在哪里调用?应该是m_Page2没被初始化。
      

  3.   

       在调用domodal()之前对话框里面的控件都没有被初始化,但是当调用domodal()并返回IDOK后,对话框里面的所有的控件都己经销毁了,所以也不能调用。这样的话,只能在对话框的INITDIALOG中调用你说的方法
        如下:
        DLG dlg;
        //这里还没有调DOMODAL()所以在这里调用对话框里面的控件,会出错
       if (IDOK == dlg.DoModal())
       { 
           //这里调用也会出错,因为对话框里的控件全被销毁了
       } 
       所以只能在DLG这个对话框类中调用了
      

  4.   

    可以在你的PropertySheet类的初始化函数中调用。一般都需要把所有属性页都激活一次,以便全部都进行初始化。