1. 程式人生 > >cdialog::onclose(); 和 cdialog::onok();還有 showwindow(SW_HIDE);的具體區別

cdialog::onclose(); 和 cdialog::onok();還有 showwindow(SW_HIDE);的具體區別

cdialog::onclose(); //點選關閉按鈕產生事件
和 cdialog::onok();//點選ok按鈕產生事件
還有 showwindow(SW_HIDE);//隱藏當前視窗
具體來說,

showwindow(SW_HIDE);只是把對話方塊隱藏起來,但是這個對話方塊還存在

cdialog::oncloseoncloseCWnd類的成員函式,cdialogCwnd繼承而來,CDialog 自然有OnClose函數了,呼叫該函式去關閉視窗,msdn上這樣說The framework calls this member function as a signal that the CWnd or an application is to terminate. The default implementation calls DestroyWindow.

OnOk實際上是呼叫了EndDialog,是使用者點選對話方塊上的ok按鈕響應的訊息,這個函式只能在模態對話方塊中呼叫,而在非模態對話方塊中,其他兩個函式都可以用,當然他麼也可以用在非模態對話方塊中,範圍比較廣

************************************************************************************************************************************也就是說,當我們點選對話方塊右上角的“×” 按鈕時,會響應onclose()函式,我們可以在關閉前,加一些提示,例如:
void CMyPosDlg::OnClose() 
{
 if(AfxMessageBox("確定要退出嗎?",MB_YESNO)==IDYES) 
  CDialog::OnClose();
}
OnOK 函式是響應對話方塊中“確定”按鈕,ID 號為 IDOK,我們經常利用這個按鈕,來新增一些相應的響應程式碼