按鈕 (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_LBUTTONDOWN 和 WM_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 巨集。 |
通知
主題 | 內容 |
---|---|
BCN_DROPDOWN | 當使用者按鍵上的下拉箭號時傳送。 控件的父視窗會以 WM_NOTIFY 訊息的形式接收此通知程序代碼。 |
BCN_HOTITEMCHANGE | 通知按鈕控制項擁有者滑鼠正在進入或離開按鈕控制件的工作區。 按鈕控制項會以 WM_NOTIFY 訊息的形式傳送此通知程式代碼。 |
BN_CLICKED | 當使用者按鍵時傳送。 按鈕的父視窗會透過 WM_COMMAND 訊息接收 BN_CLICKED 通知程序代碼。 |
BN_DBLCLK | 當使用者按兩下按鈕時傳送。 此通知碼會自動傳送給 BS_USERBUTTON、BS_RADIOBUTTON和 BS_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_USERBUTTON、BS_RADIOBUTTON和 BS_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_SPLITBUTTON 和 BS_DEFSPLITBUTTON 樣式)。 與 BCM_GETSPLITINFO 和 BCM_SETSPLITINFO 訊息搭配使用。 |
NMBCDROPDOWN | 包含 BCN_DROPDOWN 通知的相關信息。 |
NMBCHOTITEM | 包含滑鼠在按鈕控件上移動的相關信息。 |
常數
主題 | 內容 |
---|---|
按鈕樣式 | 指定按鈕樣式的組合。 如果您使用 BUTTON 類別與 createWindow或 CreateWindowEx 函式來建立按鈕,您可以指定下列任何按鈕樣式。 |