我在单文档应用程序中创建了一个弹出对话框,里面放了一些控件,我在对话框的OnCreate函数中使用GetDlgItem(IDC_PROXYIP)->EnableWindow(FALSE);使某些控件窗口不可用,但是程序运行到这里出错,我把这些移到对话框的OnDataExchange函数里面,成功了,怎么回事儿呢?

解决方案 »

  1.   

    BOOL CCsdn4Dlg::OnInitDialog()
    {
    CDialog::OnInitDialog(); GetDlgItem(IDC_BUTTON1)->EnableWindow(false);
      

  2.   

    同意he_zhidan(何志丹:风云伐日) 说法,因为在OnCreate中控件窗口还没有创建,这是时候你用GetDlgItem获得控件窗口的指针应该返回一个空指针,你使用一个空指针当然会出错了。
      

  3.   

    不行啊,我在对话框里设了一个checkbutton用来判断这几个控件的可用性,在其构造函数中把checkbutton设置为FALSE,但是控件依然可用,晕了
      

  4.   

    最好在OnInitDialog函数中初始化你的控件!在OnCreate中设置的时候,有可能你的控件还没有创建完成!
      

  5.   

    用IsWindow()判断控件是否已生成