读书人

在MFC中展示一个对话框并在关闭后销

发布时间: 2014-07-21 16:27:56 作者: rapoo

在MFC中显示一个对话框,并在关闭后销毁它
我要实现的功能是在对话框中单击“显示”按钮时,弹出另外一个非模态对话框。我添加的响应事件是这样的:
void CMy51Dlg::OnBnClickedButton1()
{
dlg.Create(IDD_DIALOG1);
dlg.ShowWindow(SW_SHOW);
}
这样是可以实现这个功能,但是有一个问题,关闭这个弹出的对话框后,再点击原来那个“显示”按钮,会出现这个问题:
在MFC中展示一个对话框,并在关闭后销毁它
可能是没有销毁这个窗口,另外,我想再加一个按钮“隐藏”,单击这个按钮时这个对话框会隐藏起来,再单击“显示”,对话框又显示出来,在单击“隐藏”,对话框又可以隐藏……请问这个功能如何实现?
谢谢大家关注!
[解决办法]
这个Dlg是类成员变量,因为反复create所以出错。


void CMy51Dlg::OnBnClickedButton1()
{
dlg.Create(IDD_DIALOG1);
dlg.ShowWindow(SW_SHOW);
dlg.DestroyWindow();//销毁
}

[解决办法]
直接在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;
}
}



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

读书人网 >VC/MFC

热点推荐