如何实现非模态对话框的关闭
void CSurfaceDlg::OnButton1()
{
// TODO: Add your control notification handler code here
Cstep1 *Step1=new Cstep1;
if (flag1!=1)
{
Step1->Create(IDD_Step1);
Step1->ShowWindow(SW_SHOW);
flag1=1;
}
else
{
Step1->DestroyWindow();
flag1=0;
delete Step1;
}
}
程序如上,要实现的功能是点一下打开非模态对话框,再点一下关闭。
现在运行结果是,点一下打开,再点一下没反应,再点一下又打开一个,为什么啊?
[解决办法]
Cstep1 *Step1=new Cstep1;
不要把Setp1设置为局部变量
你每点一个按钮,都会new一个CStep对象,逻辑上就不对
[解决办法]
每次点击button1都新建一个对象当然不行拉
建议你把Step1设成CSurfaceDlg的成员变量,
void CSurfaceDlg::OnButton1() {// TODO: Add your control notification handler code hereif (flag1!=1){Step1=new Cstep1;Step1->Create(IDD_Step1);Step1->ShowWindow(SW_SHOW);flag1=1;}else{Step1->EndDialog(IDOK);flag1=0;delete Step1;}}