非模态对话框的创建及注意事项

创建非模态对话框

 

作为非模态对话框,这里定义的dlg是一个局部对象,那么执行完dlg.ShowWindow(SW_SHOW);后一到}符号处OnShow()函数结束,dlg这个局部对象的生命周期也到了,系统会随之把为dlg所关联的对话框资源也销毁,所以无法看到该对话框显示,而把dlg改变成CMyView的类成员变量来定义就可解决该问题。

也可以这样:

但要注意释放内存空间


 

 

            可行的方法是在将指向该对话框的指针作为该类的成员变量,在创建对话框完成之后对该成员变量赋值,在需要销毁该对话框的时候将其delete掉。

原文地址:https://www.cnblogs.com/johnpher/p/2570640.html