我在对话框中加了CComboBox和CEditRich类的两个控件,并分别加了变量:
m_ComboCtrl,m_RicheditCtrl。然后用m_ComboCtrl.AddString("str")等
操作时就出错,debug发现这两个变量的hWnd = Ox00000000,这是怎么回事?
(而在一个CRecordView的框中随便加都可以)

解决方案 »

  1.   

    在Instance中加入 InitRichEditCtrl()
      

  2.   

    不是这个原因,InitRichEditCtrl()我加了的。
      

  3.   

    你怎么加的变量阿
    是不是使用ClassWizard添加的?程序错误表明:你的CComboBox还没有被创建。
    还有,你是在什么地方执行的Add("Str")操作?
      

  4.   

    用ClassWizard添加的.
    在OnInitDialog里执行的Add("Str")操作.
      

  5.   

    m_ComboCtrl.AddString("str")语句添加的时机不对,有可能你的这条语句是这样放的:
    BOOL CYourDialog::OnInitDialog()
    {
       m_ComboCtrl.AddString("str");
       return CDialog::OnInitDialog();
    }
    改成这样:
    BOOL CYourDialog::OnInitDialog()
    {
       if(FALSE == CDialog::OnInitDialog())
               return FALSE;   m_ComboCtrl.AddString("str");   return TRUE;
    }
    为什么会这样呢? 因为在你没有调用CDialog::OnInitDialog之前,程序还没有调用DoDataExchange函数把你的变量和你相应的控件联系起来,所以其m_hWnd为0x00000000。
      

  6.   

    你添加的变量是contrl型的吗?另外在你用addstring时,肯定要先找到combobox所在的
    类,假设在View类里,你就要先找到其句柄。假设用pView存储。
      pView->m_ComboCtrl.addstring("sss");
    但你要注意的是编译的时候,在你添加的时刻,View有没被创建,如果没创建就会有pView的值为空的错误,当然程序就有问题了。
      

  7.   

    是hdsunwind说的问题,这样改就行了。不过怎么点下拉条的时候只有一条黑线,看不到下
    面的选项,不知道是怎么回事。谢谢各位。