對話框(對話框)

對話框是應用程式建立以擷取使用者輸入的臨時視窗。 應用程式通常會使用對話框來提示使用者輸入功能表項的其他資訊。 對話框通常包含使用者輸入文字、選擇選項或指示動作的一或多個控件(子視窗)。

Windows 也提供預先定義的對話框,支援一般功能表項,例如 Open 和 Print。 使用這些功能表項的應用程式應該使用通用對話框來提示此使用者輸入,而不論應用程式的類型為何。

在本節中

名字 描述
關於對話框 討論在應用程式的使用者介面中使用對話框。
對話框程式設計考慮 本概觀討論有關對話框的一些程式設計考慮。
使用對話框 您可以使用對話框來顯示資訊,並提示使用者輸入。
對話框參考 API 參考
通用對話框連結庫 討論在應用程式的使用者介面中使用通用對話框。

對話框函式

名字 描述
CreateDialog 從對話框範本資源建立無模式對話方塊。
CreateDialogIndirect 從記憶體中的對話框範本建立無模式對話框。
CreateDialogIndirectParam 從記憶體中的對話框範本建立無模式對話框。 在顯示對話方塊之前,函式會將應用程式定義值傳遞至對話框程式,做為 WM_INITDIALOG 訊息的 lParam 參數。 應用程式可以使用此值來初始化對話框控制件。
CreateDialogParam 從對話框範本資源建立無模式對話方塊。 在顯示對話方塊之前,函式會將應用程式定義值傳遞至對話框程式,做為 WM_INITDIALOG 訊息的 lParam 參數。 應用程式可以使用此值來初始化對話框控制件。
DefDlgProc 呼叫預設對話框視窗程式,為具有私用視窗類別的對話框未處理的任何視窗訊息提供默認處理。
DialogBox 從對話框範本資源建立強制響應對話方塊。 DialogBox 不會傳回控件,直到指定的回呼函式呼叫 endDialog 函式來終止強制回應對話框為止。
DialogBoxIndirect 從記憶體中的對話框範本建立強制響應對話框。 DialogBoxIndirect 不會傳回控件,直到指定的回呼函式呼叫 EndDialog 函式終止強制回應對話框為止。
DialogBoxIndirectParam 從記憶體中的對話框範本建立強制響應對話框。 在顯示對話方塊之前,函式會將應用程式定義值傳遞至對話框程式,做為 WM_INITDIALOG 訊息的 lParam 參數。 應用程式可以使用此值來初始化對話框控制件。
DialogBoxParam 從對話框範本資源建立強制響應對話方塊。 在顯示對話方塊之前,函式會將應用程式定義值傳遞至對話框程式,做為 WM_INITDIALOG 訊息的 lParam 參數。 應用程式可以使用此值來初始化對話框控制件。
DialogProc 應用程式定義的回調函式,與 CreateDialog 和 DialogBox 函式系列搭配使用。 它會處理傳送至強制回應或無模式對話框的訊息。 DLGPROC 類型會定義這個回呼函式的指標。 DialogProc 是應用程式定義函數名稱的佔位元。
EndDialog 終結強制回應對話框,導致系統結束對話框的任何處理。
GetDialogBaseUnits 擷取系統的對話框基底單位,這是系統字型中字元的平均寬度和高度。 對於使用系統字型的對話框,您可以使用這些值,在對話框範本和像素中指定的對話框範本單位之間轉換。 對於不使用系統字型的對話框,從對話框範本單位轉換成圖元的轉換取決於對話框所使用的字型。
GetDlgCtrlID 擷取指定控件的標識碼。
GetDlgItem 擷取指定對話框中控件的句柄。
GetDlgItemInt 將對話框中指定控件的文字轉譯成整數值。
GetDlgItemText 擷取對話框中控件相關聯的標題或文字。
GetNextDlgGroupItem 擷取一組控件中的第一個控件句柄,該控件位於對話框中指定的控件之前或後面。
GetNextDlgTabItem 擷取第一個控件的句柄,該控件具有指定之控件之前或之後的 WS_TABSTOP 樣式。
IsDialogMessage 判斷訊息是否適用於指定的對話方塊,如果為 ,則會處理訊息。
MapDialogRect 將指定的對話框單位轉換成螢幕單位(圖元)。 函式會將指定之 RECT 結構中的座標取代為已轉換座標,讓結構可用來建立對話框或將控件置於對話框中。
MessageBox 顯示模式對話框,其中包含系統圖示、一組按鈕,以及簡短的應用程式特定訊息,例如狀態或錯誤資訊。 消息框會傳回整數值,指出使用者按下的按鈕。
MessageBoxEx 建立、顯示及作消息框。 消息框包含應用程式定義的訊息和標題,以及預先定義的圖示和按鈕的任何組合。 按鈕是系統使用者介面的語言。
MessageBoxIndirect 建立、顯示及作消息框。 消息框包含應用程式定義的消息正文和標題、任何圖示,以及預先定義按鈕的任何組合。
SendDlgItemMessage 將訊息傳送至對話框中的指定控制件。
SetDlgItemInt 將對話框中控件的文字設定為指定整數值的字串表示。
SetDlgItemText 設定對話框中控件的標題或文字。

對話框訊息

名字 描述
DM_GETDEFID 擷取對話框的預設按鈕控件標識碼。
DM_REPOSITION 重新定位最上層對話框,使其符合桌面區域。 應用程式可以在重設大小之後,將此訊息傳送至對話方塊,以確保整個對話框保持可見。
DM_SETDEFID 變更對話框預設按鈕的識別碼。

對話框通知

名字 描述
WM_CTLCOLORDLG 在系統繪製對話方塊之前,傳送至對話方塊。 藉由回應此訊息,對話框可以使用指定的顯示裝置內容句柄來設定其文字和背景色彩。
WM_ENTERIDLE 傳送至進入閑置狀態之模式對話框或功能表的擁有者視窗。 模式對話框或功能表會在處理一或多個先前的訊息之後,在其佇列中等候訊息時進入閑置狀態。
WM_GETDLGCODE 傳送至與控件相關聯的窗口程式。 根據預設,系統會處理控件的所有鍵盤輸入;系統會將特定類型的鍵盤輸入解譯為對話框導覽鍵。 若要覆寫此預設行為,控件可以回應 WM_GETDLGCODE 訊息,以指出它想要處理本身的輸入類型。
WM_INITDIALOG 在對話框顯示之前,立即傳送至對話框程式。 對話框程式通常會使用此訊息來初始化控件,並執行會影響對話框外觀的任何其他初始化工作。
WM_NEXTDLGCTL 傳送至對話框程式,將鍵盤焦點設定為對話框中的不同控件。

對話框結構

名字 描述
DLGITEMTEMPLATE 定義對話框中控件的維度和樣式。 其中一或多個結構會結合 DLGTEMPLATE 結構,以形成對話框的標準範本。
DLGITEMTEMPLATEEX 描述擴充對話框。 如需擴充對話框範本格式的描述,請參閱 DLGTEMPLATEEX。
DLGTEMPLATE 定義對話框的維度和樣式。 這個結構一律是對話框的標準範本中的第一個,也會指定對話框中的控件數目,因此會指定範本中後續 DLGITEMTEMPLATE 結構的數目。
DLGTEMPLATEEX 擴充對話框範本會以描述對話框的 DLGTEMPLATEEX 標頭開頭,並指定對話框中的控件數目。 針對對話框中的每個控件,擴充對話框範本具有一組數據區塊,該區塊會使用 DLGITEMTEMPLATEEX 格式來描述控件。
MSGBOXPARAMS 包含用來顯示消息框的資訊。 MessageBoxIndirect 函式會使用此結構。