複製鏈接
請複製以下鏈接發送給好友

對話框

鎖定
在圖形用户界面中,對話框(又稱對話方塊)是一種特殊的視窗, 用來在用户界面中向用户顯示信息,或者在需要的時候獲得用户的輸入響應。之所以稱之為“對話框”是因為它們使計算機和用户之間構成了一個對話——或者是通知用户一些信息,或者是請求用户的輸入,或者兩者皆有。
不同的用户交互使用不同的對話框。最簡單的對話框是警告,它顯示一個信息並且僅僅需要一個信息已讀的響應(通常是單擊'確定'按鈕或“關閉”命令的對話框)。用來為一個操作提供警告和簡單的確認,也可能包括程序終止或崩潰的提示,以及用户有意或無意的關閉動作。雖然對於有模式對話框來説,這是個經常性的交互模式,但是由於它被認為在防止非預期的破壞性操作上不夠有效以及存在更好的替換方案而遭到可用性專家的批評。顯示一般提示信息的對話框,可以設計為提示氣泡等形式來避免打斷用户操作。
中文名
對話框
外文名
dialog box
組    成
對話框資源對話框類
類    型
模式對話框無模式對話框
交換驗證
數據驗證控件

對話框無模式對話框

這是一種非強制迴應的對話框,用於向用户請求非必須資料。即可以不理會這種對話框或不向其提供任何信息而繼續進行當前工作,所以窗口均可打開並處於活動狀態或是獲得焦點(人機交互熱點)。一類無模式對話框表現為工具欄,比如設置用於文字顏色的設置。查找/替換對話框可算是無模式對話框,也可以設計為工具欄 [1] 

對話框有模式對話框

這種對話框強制要求用户迴應,否則用户不能再繼續進行操作,直到與該對話框完成交互。這種對話框設計用於程序運行必須停下來,直到從用户獲得一些額外的信息,然後才可以繼續進行的操作,或可能只想確認使用者想要進行一項具有潛在危險性的操作。有模式對話框一般被視為壞的設計方案,因為以一種用户不喜歡看到方式出現,或是被習慣不去注意對話框提示的用户忽略,導致無法避免危險操作。
模式對話框一般分為系統級和應用程序級。系統級對話框出現時,用户在完成與這個對話框交互之前不能進行其它操作,比如關機對話框、Windows Vista中的UAC。應用程序級的則只對它的母程序有所限制,但可能在允許運行多個實際的不同軟件中有不同的表現:只限定其中的一個程序窗口使之無法操作或全部限定。 [1] 

對話框模式的定義

模式(計算機科學)根據傑夫·拉斯金在《Humane Interface》 (Page 42)中的定義:
人機界面對於跟定的動作(gesture)是模態的(modal) ,如果 (1)界面的當前狀態不在 用户的注意之處;(2)依賴於系統的狀態,界面對動作會從幾種不同的響應執行中選擇一種執行。
照此定義,界面是無模態的僅當用户完全感知當前狀態。例如,狀態的改變是用户故意造成的。 常見的模態的例子:
  • 鍵盤的大寫鎖(Caps Lock)、數字鍵盤鎖(Num Lock)、滾動鎖(Scroll Lock)。 [1] 
  • 編輯器Vi的輸入模式與用户模式

對話框對話框與一般窗口的區別

從操作系統實現角度,對話框是特殊的窗口(window)。特殊之處不在於對話框會包含一些控件(如按鈕、編輯框、下拉列表框等)。因為一般的窗口也可以包含這些控件。特殊性在於,對話框的這些控件是用來與用户交互的,所以有一些約定的使用規則:
  • Tab Order:按下Tab鍵或上、下、左、右方向鍵,各個控件依次獲得輸入焦點
  • 如果一個按鈕獲得輸入焦點,這時按下空格鍵或者回車鍵,相當於鼠標左鍵點擊了該按鈕
對話框的默認窗口過程在處理有關的按鍵消息時,會自動解析處理上述使用規則。而一般窗口的窗口過程,顯然沒有這些缺省的按鍵消息處理。Windows操作系統提供了一個API函數IsDialogMessage,以支持對話框上述使用規則的自動實現。 [2] 
參考資料
  • 1.    Jump up ^ Raskin, Jef (2000). The Humane Interface. Addison Wesley. ISBN 0-201-37937-6.
  • 2.    Cooper, Alan (March 17, 2003). About Face 2.0: The Essentials of Interaction Design. Wiley. ISBN 0-7645-2641-3.