请问各位高手基于对话框的mfc程序中,确定,取消和右上角的“X”关闭推出程序时有什么不同??

时间:2022-07-10 23:50:56
问题如上,不知道它们运行时消息路径如何?具体调用了哪几个函数?
如果我要退出我的程序,我在初始化时用new分配的内存如何释放?
是在“确定”和“取消”两个函数中都要释放吗?
还有“关闭”按钮,好像是个OnDestroy()函数,我是否也要同时自己改写它?
迷惑中,望各位指点一下。

9 个解决方案

#1


“确定”和“取消”最后也会调用到OnDestroy,你可以放到OnDestroy里,也可以放到析构函数里。

简单的方法是释放完记得赋值NULL,然后再释放时判断是否为NULL来决定是否应该不释放。

#2


“确定”和“取消”是从用户角度来看的,在修改对话框内任何值后,“确定”就是说要改,而“取消”就是说所有的改动都不要。“关闭”与“取消”是一个意思。
退出对话框要根据对话框的模式(模态,非模态)而定。

#3


呵呵, 典型的会了MFC而忘记C++的问题~~~ 

析构函数的功能,就是做"善后"工作的啊!!释放内存,句柄,退出子线程等等都是在这里做的.

#4


多谢楼上的指点,我也想到了在析构函数里做释放工作,可是自动生成的对话框程序中,只有构造函数,却没有析构函数。
我想自己加上它并改写,可是没找到在哪里加。我用的是vs2005
不会是自己手动添加这个析构函数吧,我觉得id里应该有相应的操作吧。

再有就是在OnDestroy()函数里和在析构函数里做清理工作有什么不同吗?哪个更好点?
我做的是模式对话框。


顺便问一下,这个帖子的分数能不能提高啊,发的时候没看,选了20分,怕到时候不够分给大家了

#5


析构是系统干的事情,你去干扰了干嘛啊?不懂

#6


用不着你管

#7


析构函数要自己写的

#8


可怜的楼主,竟然析构函数都忘了怎么写了,那一定也不知道虚析构的用处喽,那么继承、抽象啥的更加不用提了,那再高级的设计模式就更加没影了,楼主啊,努力吧,你的路还很长。。。。。。。。。。。。

#9


请问各位高手基于对话框的mfc程序中,确定,取消和右上角的“X”关闭推出程序时有什么不同?? 路漫漫其修远兮,慢慢来

#1


“确定”和“取消”最后也会调用到OnDestroy,你可以放到OnDestroy里,也可以放到析构函数里。

简单的方法是释放完记得赋值NULL,然后再释放时判断是否为NULL来决定是否应该不释放。

#2


“确定”和“取消”是从用户角度来看的,在修改对话框内任何值后,“确定”就是说要改,而“取消”就是说所有的改动都不要。“关闭”与“取消”是一个意思。
退出对话框要根据对话框的模式(模态,非模态)而定。

#3


呵呵, 典型的会了MFC而忘记C++的问题~~~ 

析构函数的功能,就是做"善后"工作的啊!!释放内存,句柄,退出子线程等等都是在这里做的.

#4


多谢楼上的指点,我也想到了在析构函数里做释放工作,可是自动生成的对话框程序中,只有构造函数,却没有析构函数。
我想自己加上它并改写,可是没找到在哪里加。我用的是vs2005
不会是自己手动添加这个析构函数吧,我觉得id里应该有相应的操作吧。

再有就是在OnDestroy()函数里和在析构函数里做清理工作有什么不同吗?哪个更好点?
我做的是模式对话框。


顺便问一下,这个帖子的分数能不能提高啊,发的时候没看,选了20分,怕到时候不够分给大家了

#5


析构是系统干的事情,你去干扰了干嘛啊?不懂

#6


用不着你管

#7


析构函数要自己写的

#8


可怜的楼主,竟然析构函数都忘了怎么写了,那一定也不知道虚析构的用处喽,那么继承、抽象啥的更加不用提了,那再高级的设计模式就更加没影了,楼主啊,努力吧,你的路还很长。。。。。。。。。。。。

#9


请问各位高手基于对话框的mfc程序中,确定,取消和右上角的“X”关闭推出程序时有什么不同?? 路漫漫其修远兮,慢慢来