真是怪哉,我在MFC的對(duì)話框中重載OnClose()函數(shù),函數(shù)體中沒(méi)有代碼的時(shí)候此函數(shù)就會(huì)被執(zhí)行,如下:OnClose(){CdialogEx::OnClose();}在上面的函數(shù)體中下斷點(diǎn)就能被斷下,但是只要其中有一句代碼比如:OnClose(){cleanup();CdialogEx::OnClose();}或者是:OnClose(){int a=1;CdialogEx::OnClose();}則此函數(shù)將不被執(zhí)行,下斷點(diǎn)也沒(méi)反應(yīng),有知道的請(qǐng)賜教,謝謝!
1 回答

縹緲止盈
TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊
我試了一下,在調(diào)用OnClose后又調(diào)用了OnBnClickedCancel,所以是多次delete的問(wèn)題,應(yīng)該在delete時(shí)這么寫(xiě)
if(pstr != NULL)
{
delete pstr;
pstr = NULL;
}
(1)點(diǎn)擊IDOK按鈕退出:先調(diào)用OnOK(),然后是OnDestory(),最后是PostNcDestroy()
(2)點(diǎn)擊IDCANCEL按鈕退出:先調(diào)用OnCancel(),然后是OnDestory(),最后是PostNcDestroy()
(3)點(diǎn)擊右上角的關(guān)閉按鈕退出:先OnClose(),然后是OnCancel(),再然后是OnDestory() ,最后是PostNcDestroy()
添加回答
舉報(bào)
0/150
提交
取消