CDialog::DoModal
呼叫此成員函式叫用的強制回應對話方塊並傳回對話方塊結果,完成。
virtual INT_PTR DoModal( );
傳回值
指定 nResult 參數的值傳遞至 CDialog::EndDialog 成員函式,以關閉 對話方塊的 int 值。 傳回值為 1,如果函式無法建立對話方塊,或 IDABORT ,如果其他錯誤,在這種情況下, 輸出視窗 將包含 GetLastError的錯誤訊息。
備註
在 對話方塊中為作用中時,此成員函式處理與具有相同使用者的所有互動。 這正是啟用對話方塊的強制回應,也就是使用者無法與其他視窗的互動,直到關閉對話方塊。
如果使用者按一下其中一個 對話方塊中的按鈕,例如判斷或取消,訊息處理常式成員函式,例如 OnOK 或 OnCancel,呼叫嘗試關閉對話方塊。 預設 OnOK 成員函式會驗證和更新對話方塊資料並關閉的結果是 IDOK對話方塊,然後,預設 OnCancel 成員函式會關閉的結果是 IDCANCEL 對話方塊,而不需驗證或更新 對話方塊中的資料。 您可以覆寫這些訊息處理常式函式變更其行為。
注意事項 |
---|
PreTranslateMessage 為強制回應對話方塊的訊息處理常式現在稱為。 |
範例
void CMyDialog::OnMenuShowAboutDialog()
{
// Construct the dialog box passing the
// ID of the dialog template resource
CDialog aboutDlg(IDD_ABOUTBOX);
// Create and show the dialog box
INT_PTR nRet = -1;
nRet = aboutDlg.DoModal();
// Handle the return value from DoModal
switch (nRet)
{
case -1:
AfxMessageBox(_T("Dialog box could not be created!"));
break;
case IDABORT:
// Do something
break;
case IDOK:
// Do something
break;
case IDCANCEL:
// Do something
break;
default:
// Do something
break;
};
}
需求
Header: afxwin.h