這裏關鍵要看,對話框是模態還是非模態。
模態對話框的確定和取消按鈕,調用的是EndDialog來結束對話框,不會觸發WM_CLOSE消息,因此,要在兩個按鈕響應消息OnOK和OnCancel中進行確認提示,以OnOK為例:
void?CDialog1::OnOK()?{
if(IDOK==AfxMessageBox(_T("您確定要退出嗎"),MB_OKCANCEL))
CDialogEx::OnOK();
}
需要註意的是,即使是模態對話框,如果在標題欄中增加了系統按鈕,那麽“紅叉”按鈕的關閉還是需要響應WM_CLOSE消息,也就是妳同樣需要在OnClose裏面做這個確認提示。
非模態對話框,會屏蔽OnOK和OnCancel中的基類調用,只需要響應WM_CLOSE即可。