请问各位大侠 我在一个模态对话框a中 CbDlg *bb;
点击一个按钮出现非模态对话框b(是这样实现的: bb=new CbDlg;
bb->Creat(IDD_b);
bb->->ShowWindow(SW_SHOW);)
那么我模态对话框a中的bb指针如何释放啊,以及在哪释放?而我生成的非模态对话框b 应该如何在b中销毁啊 我是重载OnCancel函数,并在析构函数中DestroyWindow();
然后OnCancel就直接销毁了 我这样理解对吗?
点击一个按钮出现非模态对话框b(是这样实现的: bb=new CbDlg;
bb->Creat(IDD_b);
bb->->ShowWindow(SW_SHOW);)
那么我模态对话框a中的bb指针如何释放啊,以及在哪释放?而我生成的非模态对话框b 应该如何在b中销毁啊 我是重载OnCancel函数,并在析构函数中DestroyWindow();
然后OnCancel就直接销毁了 我这样理解对吗?
标准做法
也是在b里面释放? 那里面应该是销毁非模态对话框b的吧
在A需要销毁bb的地方,调用bb->DestroyWindow()就可以了,DestroyWindow里面回调用PostNcDestory,他就会把你new出来的那块内存通过delete this释放掉!
我不知道哪里来了个“标准做法”,
这种做法在MFC文档视图结构用过,我现在的项目中也用过,
但我不推荐
那么我在析构函数中 delete bb;有作用吗
就要自己在a的OnDestroyWindow里调用bb-〉DestroyWindow();
然后再a的析构函数里delete bb;
如果释放的就不会有泄漏信息了.
通过这个,可以看你的bb是否被释放了
转到release只是编译属性有变化
和代码没关系