对话框 (对话框)

对话框是应用程序为检索用户输入而创建的临时窗口。 应用程序通常使用对话框提示用户输入菜单项的其他信息。 对话框通常包含一个或多个控件 (子窗口) 用户输入文本、选择选项或指示操作。

Windows 还提供支持常见菜单项(如 “打开” 和“ 打印”)的预定义对话框。 使用这些菜单项的应用程序应使用通用对话框来提示此用户输入,而不考虑应用程序的类型。

本节内容

名称 说明
关于对话框 讨论在应用程序的用户界面中使用对话框。
对话框编程注意事项 本概述讨论了有关对话框的一些编程注意事项。
使用对话框 使用对话框显示信息并提示用户输入。
对话框参考 API 参考
通用对话框库 讨论在应用程序的用户界面中使用通用对话框。

对话框函数

名称 说明
CreateDialog 从对话框模板资源创建无模式对话框。
CreateDialogIndirect 从内存中的对话框模板创建无模式对话框。
CreateDialogIndirectParam 从内存中的对话框模板创建无模式对话框。 在显示对话框之前,函数将应用程序定义的值作为WM_INITDIALOG消息的 lParam 参数传递给对话框过程。 应用程序可以使用此值来初始化对话框控件。
CreateDialogParam 从对话框模板资源创建无模式对话框。 在显示对话框之前,函数将应用程序定义的值作为WM_INITDIALOG消息的 lParam 参数传递给对话框过程。 应用程序可以使用此值来初始化对话框控件。
DefDlgProc 调用默认对话框窗口过程,为具有专用窗口类的对话框不处理的任何窗口消息提供默认处理。
DialogBox 从对话框模板资源创建模式对话框。 在指定的回调函数通过调用 EndDialog 函数终止模式对话框之前,DialogBox 不会返回控件。
DialogBoxIndirect 从内存中的对话框模板创建模式对话框。 在指定的回调函数通过调用 EndDialog 函数终止模式对话框之前,DialogBoxIndirect 不会返回控件。
DialogBoxIndirectParam 从内存中的对话框模板创建模式对话框。 在显示对话框之前,函数将应用程序定义的值作为WM_INITDIALOG消息的 lParam 参数传递给对话框过程。 应用程序可以使用此值来初始化对话框控件。
DialogBoxParam 从对话框模板资源创建模式对话框。 在显示对话框之前,函数将应用程序定义的值作为WM_INITDIALOG消息的 lParam 参数传递给对话框过程。 应用程序可以使用此值来初始化对话框控件。
DialogProc CreateDialogDialogBox 函数系列一起使用的应用程序定义的回调函数。 它处理发送到模式或无模式对话框的消息。 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 函数使用此结构。