类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类的成员 构造函数
初始化函数
Create | 创建Windows按钮控件并在CButton对象上应用 |
操作
GetState | 检索按钮控件的选中状态、加亮状态和获得焦点状态 |
SetState | 设置按钮控件的加亮状态 |
GetCheck | 检索按钮控件的选中状态 |
SetCheck | 设置按钮控件的选中状态 |
GetButtonStyle | 检索按钮控件的风格 |
SetButtonStyle | 设置按钮控件的风格 |
GetIcon | 检索此前调用SetIcon设置的图标句柄 |
SetIcon | 指定一个在按钮上显示的图标 |
GetBitmap | 检索此前调用SetBitmap设置的位图的句柄 |
SetBitmap | 设置在按钮上显示的位图 |
GetCursor | 检索此前调用SetCursor设置的光标图像的句柄 |
SetCursor | 设置在按钮上显示的光标图像 |
可覆盖的函数
DrawItem | 可以覆盖它来绘制自定义的CButton对象 |