打开对话框的代码
DialogShow1* m_DlgShow;

CVoltView::CVoltView()
: CFormView(CVoltView::IDD)中
m_DlgShow = new DialogShow1(this);void CVoltView::OnButtonShow() 
{
 h = m_DlgShow->GetSafeHwnd() ;
if( h == 0)
{
m_DlgShow->Create(IDD_DIALOG1,this); }
}

解决方案 »

  1.   

    1、大哥,这样可以显示窗体吗?
    2、我这样做没有发现你说的问题呀if(g_pShowDlg->GetSafeHwnd() == NULL)
    {
       g_pShowDlg->Create(IDD_DIALOG1,this);
       g_pShowDlg->ShowWindow(SW_SHOW);
    }
    else
       g_pShowDlg->ShowWindow(SW_SHOW);
      

  2.   

    将h==0改为
    if(!h)
    因为GetSafeHwnd()返回的是一个HWND的句柄。
      

  3.   

    不是创建问题,估计是DialogShow1里有问题,
    DialogShow1的主要代码?
      

  4.   

    我在DialogShow1中没有什么代码。都是继承过来的。
      

  5.   

    m_DlgShow->Create(IDD_DIALOG1,this);
    m_DlgShow->ShowWindow(SW_SHOW);如果你把下面这两句去掉后执行有问题吗??
     h = m_DlgShow->GetSafeHwnd() ;
    if( h == 0)
      

  6.   

    对你说几点建议1、一般指针m_DlgShow在构造器中给空值NULL就可以了2、在打开对话框的按钮函数中,这样写
    if( m_DlgShow == NULL)
    {
       m_DlgShow = new DialogShow1(this);
       m_DlgShow->Create(IDD_DIALOG1,this);
    }
    g_pShowDlg->ShowWindow(SW_SHOW);