我要实现的功能是在对话框中单击“显示”按钮时,弹出另外一个非模态对话框。我添加的响应事件是这样的:
void CMy51Dlg::OnBnClickedButton1()
{
dlg.Create(IDD_DIALOG1);
dlg.ShowWindow(SW_SHOW);
}
    这样是可以实现这个功能,但是有一个问题,关闭这个弹出的对话框后,再点击原来那个“显示”按钮,会出现这个问题:    可能是没有销毁这个窗口,另外,我想再加一个按钮“隐藏”,单击这个按钮时这个对话框会隐藏起来,再单击“显示”,对话框又显示出来,在单击“隐藏”,对话框又可以隐藏……请问这个功能如何实现?
    谢谢大家关注!

解决方案 »

  1.   

    这个Dlg是类成员变量,因为反复create所以出错。void CMy51Dlg::OnBnClickedButton1()
    {
    dlg.Create(IDD_DIALOG1);
    dlg.ShowWindow(SW_SHOW);
    dlg.DestroyWindow();//销毁
    }
      

  2.   

    直接在Dialog初始化的时候Create一次。
    最好用指针。
    CDialog * dlg = new CDialog;
    dlg->Create((IDD_DIALOG1)  //注意参数
    void CMy51Dlg::OnBnClickedButton1()

      if(!bflag)
     {
      dlg->ShowWindow(SW_SHOW);
      bflag = TRUE;
     }
     else
     {
        dlg->ShowWindow(SW_HIDE);
         bflag = FALSE;
     }
    }
      

  3.   

    dlg是成员变量,在初始化的时候MAIN DLG的时候就用 二楼的方法 创建出来,  之后只是修改对应的showWindow属性的值就好
      

  4.   

    对话框类名 dlg;  //找到IDD_DIALOG1对话框的头文件类名称
    dlg.DoModal();
      

  5.   

    按照二楼的做生成解决方案有错误
    对应CDialog * dlg = new CDialog;处提示:
    1>c:\users\administrator\desktop\dicomview12.8\dicomviewview.h(30) : error C2864: “CDicomViewView::dlg”: 只有静态常量整型数据成员才可以在类中初始化
    对应if(!bflag)处提示
    :1>c:\users\administrator\desktop\dicomview12.8\dicomviewview.cpp(221) : error C2065: “bflag”: 未声明的标识符