我在view类的一个函数中新建了一个对话框类,然后希望让对话框中的一个按钮disable并隐藏掉,另一个按钮enable并显现出来,代码如下,编译通过,但是运行时出错
------------------------------------------------------------
CNew_input up;//CNew_input是对话框类
up.m_cbInput.EnableWindow(FALSE);//m_cbInput是对话框类中的控制型成员变量(CButton类)
up.m_cbInput.ShowWindow(SW_HIDE);
up.m_cbUpdate.EnableWindow(TRUE);//m_cbUpdate同m_cbInput类似
up.m_cbUpdate.ShowWindow(SW_SHOW);
------------------------------------------------------------
运行出错是winocc.cpp的第321行,代码是ASSERT(::IsWindow(m_hWnd));
请问这是怎么回事情啊?怎么解决,谢谢!!!

解决方案 »

  1.   

    对话框没有建立,先要把对话框显示出来,在InitDialog中隐藏按钮。
      

  2.   

    在对话筐类中加入一个成员函数
    void CMyDlg::EnableControls(BOOL bEnable)
    {
        DOWRD dw;
        m_cbInput.EnableWindow(!bEnable);
        if(bEnable)
             dw = SW_HIDE;
        m_cbInput.ShowWindow(dw);
        m_cbUpdate.EnableWindow(bEnable);
       if(bEnable)
             dw = SW_SHOW;
        m_cbUpdate.ShowWindow(SW_SHOW);
        UpdateWindow();
    }在InitDialog中调用默认的情况,其它时候根据情况调用。
      

  3.   

    CNew_input up;//CNew_input是对话框类//not recommended
    up.DoModal();
    up.ShowWindow(SW_HIDE); up.m_cbInput.EnableWindow(FALSE);//m_cbInput是对话框类中的控制型成员变量(CButton类)
    up.m_cbInput.ShowWindow(SW_HIDE);
    up.m_cbUpdate.EnableWindow(TRUE);//m_cbUpdate同m_cbInput类似
    up.m_cbUpdate.ShowWindow(SW_SHOW);