对话框(对话框)

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

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

在本部分中

名字 描述
关于对话框 讨论在用户界面中为应用程序使用对话框。
对话框编程注意事项 本概述讨论有关对话框的一些编程注意事项。
使用对话框 使用对话框显示用户输入的信息和提示。
”对话框引用 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 一个应用程序定义的回调函数,与 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 函数使用此结构。