CButton

類CButtonBitmap是從類CButton繼承而來的,不過它支持按鈕的圖像標籤。一個CButtonBitmap對象可以分別為它的四種狀態(未按下、按下、獲得焦點和禁止存取)設定不同的點陣圖。

簡介

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

繼承圖表 繼承圖表

詳細資訊

典型的按鈕控制項有:複選框、單選鈕和下壓式按鈕(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對象

初始化函式

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為不確定

操作

GetState 檢索按鈕控制項的選中狀態、加亮狀態和獲得焦點狀態

SetState 設定按鈕控制項的加亮狀態

GetCheck 檢索按鈕控制項的選中狀態

SetCheck 設定按鈕控制項的選中狀態

GetButtonStyle 檢索按鈕控制項的風格

SetButtonStyle 設定按鈕控制項的風格

GetIcon 檢索此前調用SetIcon設定的圖示句柄

SetIcon 指定一個在按鈕上顯示的圖示

GetBitmap 檢索此前調用SetBitmap設定的點陣圖的句柄

SetBitmap 設定在按鈕上顯示的點陣圖

GetCursor 檢索此前調用SetCursor設定的游標圖像的句柄

SetCursor 設定在按鈕上顯示的游標圖像

可覆蓋的函式

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

相關詞條

相關搜尋

熱門詞條

聯絡我們