Share via


按鈕類型

有數種類型的按鈕和一或多個按鈕樣式,可區分相同類型的按鈕。

本文件討論下列主題。

按鈕類型和樣式

按鈕屬於類型,而且可能會有影響其外觀和行為的其他樣式。 如需按鈕樣式的表格,請參閱 按鈕樣式

下列螢幕快照顯示不同類型的按鈕。

screen shot of a dialog box that shows examples of eight types of buttons

螢幕快照顯示按鈕在 Windows Vista 中的顯示方式。 外觀會因操作系統的不同版本而有所不同,並根據使用者所設定的主題而定。

請注意下圖的下列幾點:

  • [三狀態] 複選框會顯示在不確定狀態中。 核取或取消核取時,看起來像是一般複選框。
  • 大型推播按鈕已以程式設計方式設定為已推送狀態(藉由傳送 BM_SETSTATE 訊息),因此即使未按兩下,它仍會保留其外觀。
  • 在顯示的可視化樣式中,預設按下按鈕的背景(或具有輸入焦點的另一個按鈕)會在藍色和灰色之間迴圈。

複選框

複選框是由方塊和應用程式定義的標籤、圖示或點陣圖所組成,指出使用者可以選取按鈕來進行的選擇。 應用程式通常會顯示複選框,讓用戶選擇一或多個非互斥的選項。

複選框可以是四種樣式之一:標準、自動、三狀態和自動三種狀態,分別由常數BS_CHECKBOXBS_AUTOCHECKBOX、BS_3STATEBS_AUTO3STATE所定義。 每個樣式都可以假設有兩個複選狀態:已核取(方塊內有複選標記)或已清除(沒有複選標記)。 此外,三狀態複選框可以假設狀態不確定(複選框內的陰影方塊),這可能表示使用者尚未做出選擇。 重複按下標準或自動複選框,會將它從核取切換為已清除再返回。 重複按兩下三狀態複選框會將它從核取切換為清除以不確定,然後重複迴圈。

當使用者按一下複選框(任何樣式),複選框就會接收鍵盤焦點。 系統會將包含BN_CLICKED通知碼的WM_COMMAND訊息傳送給複選框的父視窗。 如果父視窗來自自動複選框或自動三狀態複選框,則父視窗不需要處理此訊息,因為系統會自動設定這些樣式的核取狀態。 但如果訊息來自非自動複選框或三狀態複選框,父視窗就必須處理訊息,因為父視窗負責設定這些樣式的檢查狀態。 不論複選框樣式為何,系統都會在變更其狀態后自動重新繪出複選框。

應用程式可以使用IsDlgButtonChecked函式來確認複選框的狀態。

群組方塊

群組 塊是一個矩形,圍繞一組控件,例如複選框或單選按鈕,其左上角有應用程式定義的文字標籤。 群組方塊的唯一用途是組織與一般用途相關的控件(通常以標籤表示)。 群組方塊只有一個樣式,由常數 BS_GROUPBOX定義。 因為無法選取群組方塊,所以沒有核取狀態、焦點狀態或推送狀態。

按鈕

按鈕是一個矩形,其中包含應用程式定義的文字標籤、圖示或點陣圖,指出使用者選取按鈕時所執行的動作。

按鈕可以是兩種樣式之一,標準或預設值,如常數BS_PUSHBUTTONBS_DEFPUSHBUTTON所定義。 標準推播按鈕通常用於啟動作業。 當使用者按兩下鍵盤焦點時,它會接收鍵盤焦點。 默認的按鈕通常用來指出最常見的或預設選擇,例如關閉對話框。 當使用者對話框中沒有其他按鈕具有輸入焦點時,只要按 ENTER 即可選取的按鈕。

當使用者按鍵時,它會接收鍵盤焦點。 系統會將包含BN_CLICKED通知碼的WM_COMMAND訊息傳送給按鈕的父視窗

分割 按鈕 是 Windows Vista 和 6.00 版中引進的特殊按鈕。 分割按鈕分成兩個部分。 主要部分的功能類似一般或預設的按下按鈕。 第二個部分具有指向向下的箭號。 按兩下箭號時,通常會顯示功能表。

分割按鈕具有BS_SPLITBUTTON樣式,如果它是對話框中的默認按鈕,則為BS_DEFSPLITBUTTON樣式。 您可以使用BCM_SETSPLITINFO訊息或對應的Button_SetSplitInfo宏來修改按鈕的外觀。

當使用者按下分割按鈕的主要部分時,它會傳送 BN_CLICKED 通知,就像一般推播按鈕一樣。 但是當使用者按兩下向下箭號時,它會傳送 BCN_DROPDOWN 通知。 應用程式有責任顯示功能表以回應BCN_DROPDOWN。

Windows Vista 和 6.00 版也引進了另一種按鈕,即 命令連結。 從視覺上看,命令連結與一般按下按鈕非常不同,但它具有相同的功能。 命令連結通常會以較小的字型顯示箭號圖示、文字行和其他文字。

選項按鈕

單選按鈕(也稱為單選按鈕)是由圓形按鈕和應用程式定義的標籤、圖示或點陣圖所組成,指出使用者可以透過選取按鈕來進行的選擇。 應用程式通常會使用群組方塊中的單選按鈕,讓用戶選擇一組相關但互斥的選項。

單選按鈕可以是兩種樣式之一:標準或自動,如樣式常數BS_RADIOBUTTONBS_AUTORADIOBUTTON所定義。 每個樣式都可以假設有兩個檢查狀態:已核取 (按鈕中的點)或已清除 (按鈕中沒有點)。

當用戶選取任一狀態時,單選按鈕會接收鍵盤焦點。 系統會將包含BN_CLICKED通知碼的WM_COMMAND訊息傳送給按鈕的父視窗。 如果父視窗來自自動單選按鈕,則父視窗不需要處理此訊息,因為系統會自動設定該樣式的檢查狀態。 但如果訊息來自非自動單選按鈕,父視窗應該處理訊息,因為父視窗負責設定該樣式的檢查狀態。 不論單選按鈕樣式為何,系統都會在按鈕的狀態變更時自動重繪按鈕。

單選按鈕會以群組排列,而且隨時只能檢查群組中的一個按鈕。 如果已針對任何單選按鈕設定WS_GROUP旗標,該按鈕是群組中的第一個按鈕,且緊接在索引卷標順序中追蹤它的所有按鈕(但本身沒有WS_GROUP旗標)都是其群組的一部分。 如果沒有單選按鈕具有 WS_GROUP 旗標,對話框中的所有單選按鈕都會被視為單一群組。

應用程式可以使用IsDlgButtonChecked函式來確認是否檢查單選按鈕。

參考

按鈕樣式

概念

使用按鈕