真是怪哉,我在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()
- 1 回答
- 0 关注
- 483 浏览
添加回答
举报
0/150
提交
取消