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

CButton

鎖定
CBitmapButton都是從CButton繼承而來的,不過它支持按鈕的圖像標籤。一個CBitmapButton對象可以分別為它的四種狀態(未按下、按下、獲得焦點和禁止存取)設置不同的位圖。
外文名
CButton
特    點
支持按鈕的圖像標籤
狀    態
未按下、按下、獲得焦點等
成員函數
構造一個CButton對象

CButton簡介

類CButton提供了對Windows按鈕控件的操作。按鈕控件是一個小的矩形子窗口,可以通過單擊選中(按下)或不選中。按鈕可以單獨使用,也可以成組使用,它還可以具有文本標題。在用户單擊它的時候,按鈕通常要改變顯示外觀。

CButton詳細資料

典型的按鈕控件有:複選框、單選鈕和下壓式按鈕(push button)。一個CButton對象可以是它們中的一種,這由它的按鈕風格和成員函數Create的初始化決定。
既可以從對話框模板中創建一個按鈕控件,也可以直接在代碼中創建。
無論哪種情況,都要先調用構造函數CButton構造一個CButton對象,然後調用成員函數Create創建Windows按鈕控件並應用到CButton對象上。
在一個從類CButton派生出來的類中,構造可以一步完成。程序員可以為這個派生類編寫一個構造函數,並在其中調用Create函數。
如果想處理Windows的通知消息,如位圖按鈕控件發給它的父對象(通常是從CDialog繼承來的)的消息,就要在父對象中加入消息映射入口以及處理每個消息的成員函數。
每個消息映射入口的格式如下:
ON_Notification(id, memberFxn)
其中id指定了發送通知的控件的子窗口的ID,而memberFxn指定了處理該通知的父對象中的成員函數名。
父對象的函數原型格式如下:
afx_msg void memberFxn( );
可能的消息映射入口如下:
映射入口:何時向父對象發送消息
ON_BN_CLICKEN :用户單擊按鈕時響應消息。
ON_BN_DOUBLECLICKED :用户雙擊按鈕時響應消息。
如果在對話框資源中創建了CButton對象,則在用户關閉該對話框時會自動撤消這個CButton對象。如果在窗口中創建了CButton對象,就可能需要自己撤消它。如果是用new函數在內存的堆中創建該對象的,則在用户關閉該窗口按鈕控件時,必須用delete函數撤消它。如果在堆棧中創建了該對象,或者它嵌入在父對話框對象中,系統會自動撤消它。
#include <afxwin.h>

CButton成員函數

CButton構造函數

CButton 構造一個CButton對象

CButton初始化函數

Create 創建Windows按鈕控件並在CButton對象上應用
CButton::Create 創建一個CButton對象
BOOL Create( LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );
lpszCaption是按鈕上顯示的文本;
dwStyle指定按鈕風格,可以是按鈕風格與窗口風格的組合,取值有:
窗口風格
WS_CHILD 子窗口,必須有
WS_VISIBLE 窗口可見,一般都有
WS_DISABLED 禁用窗口,創建初始狀態為灰色不可用的按鈕時使用
WS_TABSTOP 可用Tab鍵選擇
WS_GROUP 成組,用於成組的單選按鈕中的第一個按鈕
按鈕風格
BS_PUSHBUTTON 下壓式按鈕,也即普通按鈕
BS_AUTORADIOBUTTON 含自動選中狀態的單選按鈕
BS_RADIOBUTTON 單選按鈕,不常用
BS_AUTOCHECKBOX 含自動選中狀態的複選按鈕
BS_CHECKBOX 複選按鈕,不常用
BS_AUTO3STATE 含自動選中狀態的三態複選按鈕
BS_3STATE 三態複選按鈕,不常用
以上風格指定了創建的按鈕類型,不能同時使用,但必須有其一。
BS_BITMAP 按鈕上將顯示位圖
BS_DEFPUSHBUTTON 設置為默認按鈕,只用於下壓式按鈕,一個對話框中只能指定一個默認按鈕
rect指定按鈕的大小和位置;
pParentWnd指示擁有按鈕的父窗口,不能為NULL;
nID指定與按鈕關聯的ID號,用上一步創建的ID號。
返回值:若成功,返回非0;否則返回0 CButton::DrawItem 重載該函數繪製一個CButton對象,由框架調用該函數
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
參數:lpDrawItemStruct指向包含繪製項信息和要求類型的LPDRAWITEMSTRUCT結構的長指針
CButton::SetCheck 設置或復位單選按鈕和複選按鈕的選擇狀態
void SetCheck(int nCheck);
參數:nCheck 指定設置的狀態,0為未選擇,1為選中,2為不確定

CButton操作

GetState 檢索按鈕控件的選中狀態、加亮狀態和獲得焦點狀態
SetState 設置按鈕控件的加亮狀態
GetCheck 檢索按鈕控件的選中狀態
SetCheck 設置按鈕控件的選中狀態
GetButtonStyle 檢索按鈕控件的風格
SetButtonStyle 設置按鈕控件的風格
GetIcon 檢索此前調用SetIcon設置的圖標句柄
SetIcon 指定一個在按鈕上顯示的圖標
GetBitmap 檢索此前調用SetBitmap設置的位圖的句柄
SetBitmap 設置在按鈕上顯示的位圖
GetCursor 檢索此前調用SetCursor設置的光標圖像的句柄
SetCursor 設置在按鈕上顯示的光標圖像

CButton可覆蓋的函數

DrawItem 可以覆蓋它來繪製自定義的CButton對象