CButton

CObject
 └CCmdTarget
    └CWnd
       └CButton

类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>

请参阅:
CWnd, CComboBox, CEdit, CListBox, CScrollBar, CStatic, CBitmapButton, CDialog


CButton类的成员

构造函数
CButton构造一个CButton对象

初始化函数
Create创建Windows按钮控件并在CButton对象上应用

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

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