类CButtonBitmap是从类CButton继承而来的,不过它支持按钮的图像标籤。一个CButtonBitmap对象可以分别为它的四种状态(未按下、按下、获得焦点和禁止存取)设定不同的点阵图。
基本介绍
- 外文名CButton
- 特点支持按钮的图像标籤
- 状态未按下、按下、获得焦点等
- 成员函式构造一个CButton对象
简介
类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对象