共用方式為


CDialog 類別

指定顯示在螢幕上的 對話方塊的基底類別。

class CDialog : public CWnd

Members

公用建構函式

名稱

描述

CDialog::CDialog

建構 CDialog 物件。

公用方法

名稱

描述

CDialog::Create

初始化 CDialog 物件。 建立非強制回應對話方塊並將其附加至 CDialog 物件。

CDialog::CreateIndirect

若要從建立對話方塊樣板的非強制回應對話方塊在記憶體中 (不是以為基礎的資源)。

CDialog::DoModal

呼叫強制回應對話方塊並傳回,完成。

CDialog::EndDialog

關閉強制回應對話方塊。

CDialog::GetDefID

取得預設按鈕控制項 ID] 對話方塊中的。

CDialog::GotoDlgCtrl

將焦點移至 對話方塊中指定的對話方塊控制項。

CDialog::InitModalIndirect

若要從建立對話方塊樣板的強制回應對話方塊在記憶體中 (不是以為基礎的資源)。 儲存參數,直到 DoModal 函式呼叫。

CDialog::MapDialogRect

轉換矩形的對話方塊單位篩選單位。

CDialog::NextDlgCtrl

將焦點移至 對話方塊中的 對話方塊的控制項。

CDialog::OnInitDialog

擴大對話方塊初始化的覆寫。

CDialog::OnSetFont

指定字型的覆寫對話方塊控制項是使用時所繪製文字。

CDialog::PrevDlgCtrl

將焦點移至 對話方塊中的上一個對話方塊控制項。

CDialog::SetDefID

若要變更對話方塊的預設按鈕控制項加入至指定的按鈕。

CDialog::SetHelpID

設定對話方塊的即時線上說明 ID。

受保護的方法

名稱

描述

CDialog::OnCancel

執行取消按鈕或 ESC 按鍵動作的覆寫。 預設關閉對話方塊並 DoModal 傳回 IDCANCEL

CDialog::OnOK

執行 [確定] 按鈕動作的覆寫在強制回應對話方塊。 預設關閉對話方塊並 DoModal 傳回 IDOK

備註

對話方塊有兩種類型:強制回應 (Modal) 和非強制回應。 在中,應用程式會繼續執行之前,必須由使用者關閉強制回應對話方塊。 非強制回應對話方塊能讓使用者顯示對話方塊並回到另一項工作,而不需移除或移除 對話方塊。

CDialog 物件是對話方塊樣板和 CDialog衍生類別的組合。 使用對話方塊編輯器建立對話方塊樣板資源以及儲存它,然後使用加入類別精靈會從 CDialog衍生自類別的類別。

顯示對話方塊,如同其他視窗,取得從視窗的訊息。 在 對話方塊中,您會特別為此後的處理對話方塊的控制項傳回的通知訊息所需的使用者如何與您的對話方塊互動。 使用訊息要處理常式,它會將適當的訊息對應 (Message Map 輸入和訊息處理常式成員函式加入至類別的 [屬性] 視窗中選取 。 您在處理常式成員函式只需要撰寫應用程式特定的程式碼。

如果想要的話,您可以撰寫訊息對應 (Message Map 輸入,而成員手動地運作。

除了最普通對話方塊中,您將成員變數加入至衍生自類別的對話方塊類別加入至對話方塊的控制項中輸入的資料存放區由使用者或為使用者顯示資料。 您可以使用加入變數精靈來建立成員變數並與控制項。 同時,您選取值的變數的型別和允許的範圍內的每個變數的。 程式碼精靈加入成員變數加入至衍生自類別的對話方塊類別。

資料將會自動處理資料交換在成員變數和對話方塊的控制項。 資料將提供使用 對話方塊中的控制項具有適當的值,擷取資料,並驗證資料的函式。

若要建立強制回應對話方塊,請建構在堆疊上的物件使用所衍生的對話方塊類別的建構函式來建立 DoModal 對話視窗和它的控制項。 如果您想要建立非強制回應對話方塊,請在您的對話方塊類別建構函式的呼叫 建立

您也可以在記憶體中建立一個範本使用 DLGTEMPLATE 資料結構 Windows SDK(如中所述。 在建構 CDialog 物件後,請呼叫 CreateIndirect 建立非強制回應對話方塊或呼叫 InitModalIndirectDoModal 建立強制回應對話方塊。

交換和驗證資料將加入到新的對話方塊類別 CWnd::DoDataExchange 的覆寫中。 如需更多參閱 DoDataExchange 成員函式在 CWnd 在交換和驗證功能。

這個程式設計人員和架構藉由呼叫方法間接呼叫 DoDataExchangeCWnd::UpdateData

當使用者按一下 [確定] 按鈕關閉強制回應對話方塊時,架構會呼叫 UpdateData 。 (資料不會擷取,如果取消按鈕按一下 )。OnInitDialog 的預設實作會呼叫 UpdateData 設定控制項的初始值。 通常您會覆寫 OnInitDialog 進一步初始化控制項。 OnInitDialog 呼叫,在所有對話方塊控制項,並建立之後,在 對話方塊中顯示之前。

您可以在強制回應或非強制回應對話方塊執行期間隨時呼叫 CWnd::UpdateData

如果您以手動方式開發與 對話方塊中,您將需要的成員變數加入至衍生自類別的對話方塊類別,然後,您將成員函式設定或取得這些值。

強制回應對話方塊自動關閉,當使用者按下 [確定] 或 [取消] 按鈕時,或當您的程式碼呼叫 EndDialog 成員函式時。

當您實作非強制回應對話方塊時,請務必覆寫 OnCancel 成員函式和呼叫 DestroyWindow 從其內部。 不要呼叫基底類別 CDialog::OnCancel,,因為它會呼叫 EndDialog,讓對話方塊不可見,但不會終結它。 因為非強制回應對話方塊通常會以 new,則也應覆寫和非強制回應對話方塊的 PostNcDestroy 才能移除 this。 強制回應對話方塊顯示在框架通常會建構,並不需要 PostNcDestroy 清除。

如需 CDialog的資訊,請參閱:

  • 對話方塊

  • 知識庫文件 Q262954:HOWTO:建立具有捲軸的 Resizeable 對話方塊

繼承階層架構

CObject

CCmdTarget

CWnd

CDialog

需求

**標頭檔:**afxwin.h

請參閱

參考

CWnd 類別

階層架構圖表

概念

MFC 範例 DLG CBR32

MFC 範例 DLGTEMPL