VC++6.0中,另一个对话框已经写了消息响应函数,为什么导入到这个程序里却没有响应消息?
2个回答
展开全部
关于楼主提问的“对话框怎样修改右上角的叉的响应函数”就是WM_CLOSE消息的处理函数OnClose(),fanskydream已经回答的很详细了,在此不再赘述。
我要补充的是,对话框关闭有很多途径,仅仅处理WM_CLOSE消息还是不够的。
本人就曾犯过这种错误,在对话框类中new了几个变量,在OnClose中弹出关闭确认的对话框并进行delete。当用户不点击这个“叉”关闭而直接用组合键“Alt+F4”关闭时,问题就来了:
首先是没有了关闭确认的对话框,再次就是没有delete那几个在堆上分配的变量造成内存泄漏。
因此,建议楼主重载对话框类的OnDestroy()函数。在这个函数里面进行是否关闭的确认,如果用户选择不关闭对话框,就直接返回该函数不调用父类的OnDestroy()即可。
而对话框对象内部动态生成的变量析构在放在PostNcDestroy()函数中进行。
我要补充的是,对话框关闭有很多途径,仅仅处理WM_CLOSE消息还是不够的。
本人就曾犯过这种错误,在对话框类中new了几个变量,在OnClose中弹出关闭确认的对话框并进行delete。当用户不点击这个“叉”关闭而直接用组合键“Alt+F4”关闭时,问题就来了:
首先是没有了关闭确认的对话框,再次就是没有delete那几个在堆上分配的变量造成内存泄漏。
因此,建议楼主重载对话框类的OnDestroy()函数。在这个函数里面进行是否关闭的确认,如果用户选择不关闭对话框,就直接返回该函数不调用父类的OnDestroy()即可。
而对话框对象内部动态生成的变量析构在放在PostNcDestroy()函数中进行。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询