CButton

王朝百科·作者佚名  2010-08-11  
宽屏版  字体: |||超大  

类CButton提供了对Windows按钮控件的操作。按钮控件是一个小的矩形子窗口,可以通过单击选中(按下)或不选中。按钮可以单独使用,也可以成组使用,它还可以具有文本标题。在用户单击它的时候,按钮通常要改变显示外观。

典型的按钮控件有:复选框、单选钮和下压式按钮(push button)。一个CButton对象可以是它们中的一种,这由它的按钮风格和成员函数Create的初始化决定。

此外,类CButtonBitmap是从类CButton继承而来的,不过它支持按钮的图像标签。一个CButtonBitmap对象可以分别为它的四种状态(未按下、按下、获得焦点和禁止存取)设置不同的位图。

既可以从对话框模板中创建一个按钮控件,也可以直接在代码中创建。

无论哪种情况,都要先调用构造函数CButton构造一个CButton对象,然后调用成员函数Create创建Windows按钮控件并应用到CButton对象上。

在一个从类CButton派生出来的类中,构造可以一步完成。程序员可以为这个派生类编写一个构造函数,并在其中调用Create函数。

如果想处理Windows的通知消息,如位图按钮控件发给它的父对象(通常是从CDialog继承来的)的消息,就要在父对象中加入消息映射入口以及处理每个消息的成员函数。

每个消息映射入口的格式如下:

ON_Notification(id, memberFxn)

其中id指定了发送通知的控件的子窗口的ID,而memberFxn指定了处理该通知的父对象中的成员函数名。

父对象的函数原型格式如下:

afx_msg void memberFxn( );

可能的消息映射入口如下:

映射入口 何时向父对象发送消息ON_BN_CLICKED 用户单击按钮时ON_BN_DOUBLECLICKED 用户双击按钮时

如果在对话框资源中创建了CButton对象,则在用户关闭该对话框时会自动撤消这个CButton对象。如果在窗口中创建了CButton对象,就可能需要自己撤消它。如果是用new函数在内存的堆中创建该对象的,则在用户关闭该窗口按钮控件时,必须用delete函数撤消它。如果在堆栈中创建了该对象,或者它嵌入在父对话框对象中,系统会自动撤消它。

#include <afxwin.h>

-------------------成员列表--------------------------------

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为不确定

操作

GetState 检索按钮控件的选中状态、加亮状态和获得焦点状态SetState 设置按钮控件的加亮状态GetCheck检索按钮控件的选中状态SetCheck 设置按钮控件的选中状态GetButtonStyle 检索按钮控件的风格SetButtonStyle 设置按钮控件的风格GetIcon 检索此前调用SetIcon设置的图标句柄SetIcon指定一个在按钮上显示的图标GetBitmap 检索此前调用SetBitmap设置的位图的句柄SetBitmap 设置在按钮上显示的位图GetCursor检索此前调用SetCursor设置的光标图像的句柄SetCursor设置在按钮上显示的光标图像

可覆盖的函数

DrawItem 可以覆盖它来绘制自定义的CButton对象

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有