本帖最后由 zyboy032 于 2009-08-24 02:24:35 编辑

解决方案 »

  1.   

    在类的构造函数中调用 GetDlgItem 出错,是正确的。
    因为在类的构造函数时,你的对话框窗口还没有建立,其中的控件窗口也没有建立;
    这时,你去操作窗口,当然要出错了,因为它们还不存在。=======你可以在对话框的 OnInitDialog 函数中做 GetDlgItem 调用和控制控件窗口。
      

  2.   


    在构造函数里面肯定是不可以的,通常应该在OnInitDialog()对这些控件初始化,但是也不应该GetDlgItem,你在建立对话框时不是放置了控件吗?为其添加变量,用变量名在OnInitDialog()初始化。
      

  3.   

    OnInitDialog() 调用后才可以
      

  4.   

    此时对话框的实例还未创建,虽然你的ID是存在的没错,但是没有和创建之后的实例对象进行绑定
    ((CComboBox*)GetDlgItem(IDC_COMBO1))这样是取不到该类的实例指针的,自然也不能操作你要记住一定要在控件类对象创建完毕之后才行
      

  5.   


    同意,看看深入浅出MFC吧。很管用的。
      

  6.   

    up
    必须先使用DoModal或Create等函数创建了对话框之后,你才能通过GetDlgItem去获取对话框中的空间窗口句柄。
    不然,对话框都不存在,你又如何去获取对话框中的子窗口句柄呢?
      

  7.   

    #1 楼,正解。把它放到OnInitDialog()里去。
      

  8.   

    自己定义一个button k控件函数,将代码添加在里面就可以了!