为了账号安全,请及时绑定邮箱和手机立即绑定

您好,请教一下,为什么OnClose()函数中有代码就不会被执行(相应)?

您好,请教一下,为什么OnClose()函数中有代码就不会被执行(相应)?

精慕HU 2021-10-19 18:15:31
真是怪哉,我在MFC的对话框中重载OnClose()函数,函数体中没有代码的时候此函数就会被执行,如下:OnClose(){CdialogEx::OnClose();}在上面的函数体中下断点就能被断下,但是只要其中有一句代码比如:OnClose(){cleanup();CdialogEx::OnClose();}或者是:OnClose(){int a=1;CdialogEx::OnClose();}则此函数将不被执行,下断点也没反应,有知道的请赐教,谢谢!
查看完整描述

1 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

我试了一下,在调用OnClose后又调用了OnBnClickedCancel,所以是多次delete的问题,应该在delete时这么写
if(pstr != NULL)
{
delete pstr;
pstr = NULL;
}
(1)点击IDOK按钮退出:先调用OnOK(),然后是OnDestory(),最后是PostNcDestroy()
(2)点击IDCANCEL按钮退出:先调用OnCancel(),然后是OnDestory(),最后是PostNcDestroy()
(3)点击右上角的关闭按钮退出:先OnClose(),然后是OnCancel(),再然后是OnDestory() ,最后是PostNcDestroy()

查看完整回答
反对 回复 2021-10-24
  • 1 回答
  • 0 关注
  • 483 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信