是这样的。OnDestroy函数仅仅是删除与窗口相关的数据,就是你调用Dlg.Create()需要使用到的数据,而不会删除new Dlg2() 所分配的内存,但是在Dlg:: OnDestroy函数里面调用delete this应该是可以销毁掉的,请问您是怎么判断内存没有被销毁的。
你试试再在WM_NCDESTROY里进行delete this,而不是在WM_DESTORY里。