在
图形用户界面中,对话框(又称对话方块)是一种特殊的
视窗, 用来在用户界面中向用户显示
信息,或者在需要的时候获得用户的输入响应。之所以称之为“对话框”是因为它们使计算机和用户之间构成了一个对话——或者是通知用户一些信息,或者是请求用户的输入,或者两者皆有。
这是一种非强制回应的对话框,用于向用户请求非必须资料。即可以不理会这种对话框或不向其提供任何信息而继续进行当前工作,所以窗口均可打开并处于活动状态或是获得
焦点(人机交互热点)。一类无
模式对话框表现为工具栏,比如设置用于文字颜色的设置。查找/替换对话框可算是
无模式对话框,也可以设计为
工具栏。
这种对话框强制要求用户回应,否则用户不能再继续进行操作,直到与该对话框完成交互。这种对话框设计用于程序运行必须停下来,直到从用户获得一些额外的信息,然后才可以继续进行的操作,或可能只想确认使用者想要进行一项具有潜在危险性的操作。有模式对话框一般被视为坏的设计方案,因为以一种用户不喜欢看到方式出现,或是被习惯不去注意对话框提示的用户忽略,导致无法避免危险操作。
有
模式对话框一般分为系统级和应用程序级。系统级对话框出现时,用户在完成与这个对话框交互之前不能进行其它操作,比如关机对话框、Windows Vista中的
UAC。应用程序级的则只对它的母程序有所限制,但可能在允许运行多个实际的不同软件中有不同的表现:只限定其中的一个程序窗口使之无法操作或全部限定。
模式(计算机科学)根据
杰夫·拉斯金在《Humane Interface》 (Page 42)中的定义:
人机界面对于跟定的动作(gesture)是模态的(modal) ,如果 (1)界面的当前状态不在 用户的注意之处;(2)依赖于系统的状态,界面对动作会从几种不同的响应执行中选择一种执行。
从操作系统实现角度,对话框是特殊的窗口(window)。特殊之处不在于对话框会包含一些控件(如按钮、编辑框、下拉列表框等)。因为一般的窗口也可以包含这些控件。特殊性在于,对话框的这些控件是用来与用户交互的,所以有一些约定的使用规则:
对话框的默认窗口过程在处理有关的按键消息时,会自动解析处理上述使用规则。而一般窗口的窗口过程,显然没有这些缺省的按键消息处理。Windows操作系统提供了一个
API函数IsDialogMessage,以支持对话框上述使用规则的自动实现。