我要在dlg初始化的时候得到一个Radiobutton的指针,
CButton* btn = (CButton* )GetDlgItem(IDC_RV1)
我把这句话放在OnInitDialog()中,为什么会在运行时报错,我发现并没有得到此控件的指针,谢谢大家了……

解决方案 »

  1.   

    似乎是控件每并未创建,大家可以告诉我一下当一个dlg实例化时到调用函数是怎样的顺序么?
      

  2.   

    你放在什么位置,应该是这个函数里,不过要在语句CDialog::OnInitDialog()后,要先调用基类的初始化函数
      

  3.   

    {
    //
    CDialog::OnInitDialog()CButton* btn = (CButton* )GetDlgItem(IDC_RV1)
    }
      

  4.   

    OnInitDialog()函数调用的时候只是初始化对话框的一些属性!
    哪个Radiobutton控件还没有被创建,所以会又错误!
      

  5.   

    在OnInitDialog()后调用这个函数
      

  6.   

    什么叫OnInitDialog()后啊……是不是等父类函数以后阿,我是这样子做的阿
      

  7.   

    ??
    不可能!CDialog::OnInitDialog()会创建对话框中所包含的控件的对象。只要在这之后调用GetDlgItem()肯定不会出错。除非ID为IDC_RV1的控件根本不存在
      

  8.   

    没问题了,谢谢大家
    我发现,如果我把这句话写在函数中,在OnInitDialog()中调用,就会出错了,为什么阿?