按鈕 (Windows 控制項)

本節包含與按鈕控件搭配使用之程式設計專案的相關信息。 按鈕是使用者可以按兩下的控制件,以提供應用程式的輸入。

概觀

主題 目錄
按鈕訊息 本主題討論與按鈕搭配使用的訊息。
按鈕狀態 本節討論如何選取按鈕變更其狀態,以及應用程式應該如何回應。
按鈕類型 本主題討論不同類型的按鈕。
使用按鈕 本節說明如何執行與按鈕相關聯的特定工作。

函式

主題 目錄
CheckDlgButton 變更按鈕控制件的檢查狀態。
CheckRadioButton 將複選標記新增至 (checks) 群組中指定的單選按鈕,並移除群組中所有其他單選按鈕的複選標記。
IsDlgButtonChecked IsDlgButtonChecked 函式會判斷是否已檢查按鈕控件,或是否檢查三狀態按鈕控件、未核取或不確定。

巨集

主題 目錄
Button_Enable 啟用或停用按鈕。
Button_GetCheck 取得單選按鈕或複選框的核取狀態。 您可以使用這個宏,或明確傳送 BM_GETCHECK 訊息。
Button_GetIdealSize 如果影像清單存在,取得最符合文字和影像的按鈕大小。 您可以使用這個宏,或明確傳送 BCM_GETIDEALSIZE 訊息。
Button_GetImageList 取得描述按鈕控制項所設定影像清單的BUTTON_IMAGELIST結構。 您可以使用這個宏,或明確傳送 BCM_GETIMAGELIST 訊息。
Button_GetNote 取得與命令連結按鈕相關聯的附註文字。 您可以使用這個宏,或明確傳送 BCM_GETNOTE 訊息。
Button_GetNoteLength 取得可顯示在命令連結描述中的記事文字長度。 使用此宏或明確傳送 BCM_GETNOTELENGTH 訊息。
Button_GetSplitInfo 取得指定之分割按鈕控制件的資訊。 使用此宏或明確傳送 BCM_GETSPLITINFO 訊息。
Button_GetState 取得單選按鈕或複選框的核取狀態。 您可以使用這個宏,或明確傳送 BM_GETSTATE 訊息。
Button_GetText 取得按鈕的文字。
Button_GetTextLength 取得按鈕文字中的字元數。
Button_GetTextMargin 取得用來在按鈕控件中繪製文字的邊界。 您可以使用這個宏,或明確傳送 BCM_GETTEXTMARGIN 訊息。
Button_SetCheck 設定單選按鈕或複選框的核取狀態。 您可以使用這個宏,或明確傳送 BM_SETCHECK 訊息。
Button_SetDropDownState 設定具有BS_SPLITBUTTON樣式之指定按鈕的下拉式狀態。 使用此宏或明確傳送 BCM_SETDROPDOWNSTATE 訊息。
Button_SetElevationRequiredState 設定指定按鈕或命令連結的提高許可權必要狀態,以顯示提升許可權的圖示。 使用此宏或明確傳送 BCM_SETSHIELD 訊息。
Button_SetImageList 將影像清單指派給按鈕控制件。 您可以使用這個宏,或明確傳送 BCM_SETIMAGELIST 訊息。
Button_SetNote 設定與指定命令連結按鈕相關聯的附註文字。 您可以使用這個宏,或明確傳送 BCM_SETNOTE 訊息。
Button_SetSplitInfo 設定指定分割按鈕控制件的資訊。 使用此宏或明確傳送 BCM_SETSPLITINFO 訊息。
Button_SetState 設定按鈕的醒目提示狀態。 醒目提示狀態指出按鈕是否反白顯示,就好像使用者已推送按鈕一樣。 您可以使用這個宏,或明確傳送 BM_SETSTATE 訊息。
Button_SetStyle 設定按鈕的樣式。 您可以使用這個宏,或明確傳送 BM_SETSTYLE 訊息。
Button_SetText 設定按鈕的文字。
Button_SetTextMargin 設定按鈕控制件中繪製文字的邊界。 您可以使用這個宏,或明確傳送 BCM_SETTEXTMARGIN 訊息。

訊息

主題 目錄
BCM_GETIDEALSIZE 如果影像清單存在,取得最適合其文字和影像的按鈕大小。 您可以明確傳送此訊息,或使用 Button_GetIdealSize 宏。
BCM_GETIMAGELIST 取得描述指派給按鈕控件之影像清單的BUTTON_IMAGELIST結構。 您可以明確傳送此訊息,或使用 Button_GetImageList 宏。
BCM_GETNOTE 取得與命令連結按鈕相關聯的附註文字。 您可以明確傳送此訊息,或使用 Button_GetNote 宏。
BCM_GETNOTELENGTH 取得可在命令連結按鈕描述中顯示的記事文字長度。 使用 Button_GetNoteLength 宏明確傳送此訊息。
BCM_GETSPLITINFO 取得分割按鈕控制件的資訊。 使用 Button_GetSplitInfo 宏明確傳送此訊息。
BCM_GETTEXTMARGIN 取得用來在按鈕控件中繪製文字的邊界。 您可以明確傳送此訊息,或使用 Button_GetTextMargin 宏。
BCM_SETDROPDOWNSTATE 設定具有樣式 TBSTYLE_DROPDOWN按鈕的下拉式狀態。 使用 Button_SetDropDownState 宏明確傳送此訊息。
BCM_SETIMAGELIST 將影像清單指派給按鈕控制件。 您可以明確傳送此訊息,或使用 Button_SetImageList 宏。
BCM_SETNOTE 設定與命令連結按鈕相關聯的附註文字。 您可以明確傳送此訊息,或使用 Button_SetNote 宏。
BCM_SETSHIELD 設定指定按鈕或命令連結的提高許可權必要狀態,以顯示提升許可權的圖示。 使用 Button_SetElevationRequiredState 宏明確傳送此訊息。
BCM_SETSPLITINFO 設定分割按鈕控制件的資訊。 使用 Button_SetSplitInfo 宏明確傳送此訊息。
BCM_SETTEXTMARGIN BCM_SETTEXTMARGIN訊息會設定按鈕控件中繪製文字的邊界。
BM_CLICK 模擬使用者按鍵。 此訊息會導致按鈕接收 WM_LBUTTONDOWNWM_LBUTTONUP 訊息,以及按鈕的父視窗接收 BN_CLICKED 通知碼。
BM_GETCHECK 取得單選按鈕或複選框的核取狀態。 您可以明確傳送此訊息,或使用 Button_GetCheck 宏。
BM_GETIMAGE 擷取與按鈕相關聯的影像(圖示或點陣圖)句柄。
BM_GETSTATE 擷取按鈕或複選框的狀態。 您可以明確傳送此訊息,或使用 Button_GetState 宏。
BM_SETCHECK 設定單選按鈕或複選框的核取狀態。 您可以明確傳送此訊息,或使用 Button_SetCheck 宏。
BM_SETDONTCLICK 在單選按鈕上設定旗標,控制按鈕收到焦點時BN_CLICKED訊息的產生。
BM_SETIMAGE 將新的影像(圖示或點陣圖)與按鈕產生關聯。
BM_SETSTATE 設定按鈕的醒目提示狀態。 醒目提示狀態指出按鈕是否反白顯示,就好像使用者已推送按鈕一樣。 您可以明確傳送此訊息,或使用 Button_SetState 宏。
BM_SETSTYLE 設定按鈕的樣式。 您可以明確傳送此訊息,或使用 Button_SetStyle 宏。

Notifications

主題 目錄
BCN_DROPDOWN 當使用者按鍵上的下拉箭號時傳送。 控件的父視窗會以WM_NOTIFY訊息的形式接收此通知程序代碼。
BCN_HOTITEMCHANGE 通知按鈕控制項擁有者滑鼠正在進入或離開按鈕控制件的工作區。 按鈕控制項會以WM_NOTIFY訊息的形式傳送此通知程式代碼。
BN_CLICKED 當使用者按鍵時傳送。
按鈕的父視窗會透過WM_COMMAND訊息接收BN_CLICKED通知程序代碼。
BN_DBLCLK 當使用者按兩下按鈕時傳送。 此通知碼會自動傳送給 BS_USERBUTTONBS_RADIOBUTTONBS_OWNERDRAW 按鈕。 只有當BS_NOTIFY樣式時,其他按鈕類型才會傳送BN_DBLCLK。
按鈕的父視窗會透過WM_COMMAND訊息接收BN_DBLCLK通知程序代碼。
BN_DISABLE 停用按鈕時傳送。 注意: 此通知程式代碼僅針對與 3.0 版之前的 16 位 Windows 版本相容。 應用程式應該針對這項工作使用 BS_OWNERDRAW 按鈕樣式和 DRAWITEMSTRUCT 結構。
按鈕的父視窗會透過WM_COMMAND訊息接收BN_DISABLE通知碼。
BN_DOUBLECLICKED 當使用者按兩下按鈕時傳送。 此通知碼會自動傳送給 BS_USERBUTTONBS_RADIOBUTTONBS_OWNERDRAW 按鈕。 其他按鈕類型只有在具有BS_NOTIFY樣式時,才會傳送BN_DOUBLECLICKED
按鈕的父視窗會透過WM_COMMAND訊息接收BN_DOUBLECLICKED通知程序代碼。
BN_HILITE 當用戶選取按鈕時傳送。 注意: 此通知程式代碼僅針對與 3.0 版之前的 16 位 Windows 版本相容。 應用程式應該針對這項工作使用 BS_OWNERDRAW 按鈕樣式和 DRAWITEMSTRUCT 結構。
按鈕的父視窗會透過WM_COMMAND訊息接收BN_HILITE通知碼。
BN_KILLFOCUS 當按鈕失去鍵盤焦點時傳送。 按鈕必須具有 BS_NOTIFY 樣式,才能傳送此通知程序代碼。
按鈕的父視窗會透過WM_COMMAND訊息接收BN_KILLFOCUS通知程序代碼。
BN_PAINT 應該繪製按鈕時傳送。 注意: 此通知程式代碼僅針對與 3.0 版之前的 16 位 Windows 版本相容。 應用程式應該針對這項工作使用 BS_OWNERDRAW 按鈕樣式和 DRAWITEMSTRUCT 結構。
按鈕的父視窗會透過WM_COMMAND訊息接收BN_PAINT通知碼。
BN_PUSHED 當按鈕的推送狀態設定為已推送時傳送。 注意: 此通知程式代碼僅針對與 3.0 版之前的 16 位 Windows 版本相容。 應用程式應該針對這項工作使用 BS_OWNERDRAW 按鈕樣式和 DRAWITEMSTRUCT 結構。
按鈕的父視窗會透過WM_COMMAND訊息接收BN_PUSHED通知碼。
BN_SETFOCUS 當按鈕收到鍵盤焦點時傳送。 按鈕必須具有 BS_NOTIFY 樣式,才能傳送此通知程序代碼。
按鈕的父視窗會透過WM_COMMAND訊息接收BN_SETFOCUS通知碼。
BN_UNHILITE 應從按鈕移除醒目提示時傳送。 注意: 此通知程式代碼僅針對與 3.0 版之前的 16 位 Windows 版本相容。 應用程式應該針對這項工作使用 BS_OWNERDRAW 按鈕樣式和 DRAWITEMSTRUCT 結構。
按鈕的父視窗會透過WM_COMMAND訊息接收BN_UNHILITE通知碼。
BN_UNPUSHED 當按鈕的推送狀態設定為未推送時傳送。 注意: 此通知程式代碼僅針對與 3.0 版之前的 16 位 Windows 版本相容。 應用程式應該針對這項工作使用 BS_OWNERDRAW 按鈕樣式和 DRAWITEMSTRUCT 結構。
按鈕的父視窗會透過WM_COMMAND訊息接收BN_UNPUSHED通知程序代碼。
NM_CUSTOMDRAW (按鈕) 通知按鈕控制件的父視窗,有關按鈕上的自定義繪製作業。
按鈕控制項會以WM_NOTIFY訊息的形式傳送此通知程式代碼。
WM_CTLCOLORBTN 在繪製按鈕之前,會將WM_CTLCOLORBTN訊息傳送至按鈕的父視窗。 父視窗可以變更按鈕的文字和背景色彩。 不過,只有擁有者繪製的按鈕會回應處理此訊息的父視窗。

結構

主題 目錄
BUTTON_IMAGELIST 包含與按鈕控制件搭配使用之影像清單的相關信息。
BUTTON_SPLITINFO 包含定義分割按鈕的資訊(BS_SPLITBUTTONBS_DEFSPLITBUTTON 樣式)。 與BCM_GETSPLITINFOBCM_SETSPLITINFO訊息搭配使用。
NMBCDROPDOWN 包含BCN_DROPDOWN通知的相關信息
NMBCHOTITEM 包含滑鼠在按鈕控件上移動的相關信息。

常數

主題 目錄
按鈕樣式 指定按鈕樣式的組合。 如果您使用 BUTTON 類別搭配 CreateWindow 或 CreateWindowEx 函式來建立按鈕,您可以指定下列任何按鈕樣式。