CButton类控件的使用


(一)CButton类控件介绍

按钮控件是Windows对话框中最常见的控件之一。按钮控件的类型比较丰富,其中主要有命令按钮、单选按钮、复选框按钮等。
按钮控件能够处理的消息类别如下所示。

消息类别发生事件
BN_ CLICKED单击按钮
BN_DOUBLECLICKED 双击按钮
BN_ SETFOCUS 按钮获取焦点
BN_ KILLFOCUS按钮失去焦点

CButton类提供的常用访问方法:

GetBitmap( )获得用SetBitmap()设置的位图的句柄
GetButtonStyle()获得有关按钮控件的样式信息
GetCheck( )获得按钮控件的选中状态
GetCursor()获得通过SetCursor()设置的光标图像的句柄
Gedcon()获得由Setlcon()设置的图标句柄
GetState()获得按钮控件的选中、选择和聚焦状态
Sefitmap( )指定按钮上显示的位图
SetBunonStyle()设置按钮样式
SetCheck()设置按钮控件的选中状态
Setclrsor( )指定按钮控件上的光标图像
SetIcon()指定按钮上显示的图标
SetState()设置按钮控件的选择状态

(二)命令按钮

MFC应用程序的对话框模板默认为每一个对话框配置两个按钮—“确认”和“取消”按钮,ID固定为IDOK和IDCANCEL,并在对话框基类中定义了BN_CLICKED消息处理函数OnOK()和OnCancel(),用于完成关闭对话框时所需要的工作。这两个函数是虚函数,可以在应用程序的对话框类中重载这两个函数。
程序员可以自由地修改默认按钮和添加新的命令按钮。通常命令按钮上都有标题以表明此按钮的作用,命令按钮的Caption属性用于设置命令按钮的标题。例如,标题“确认”表示接受用户的选择等。
在Styles标签页中主要设置按钮的显示,默认为Default button风格,Owner draw提供了另一种按钮边框风格.Icon和Bitmap属性允许创建一个显示图标或位图的按钮,Multiline属性允许按钮上显示多行文本。Horizontal alignment和Vertical alignment属性设置标题在按钮上显示的水平及垂直方向的对齐方式。

例6_2观察按钮上怎样在对话框中工作的。程序运行结果如下:

程序运行结果: 程序代码下载:

(三)单选按钮

使用单选按钮(Radio Button),只能从一组选项中选择惟一一个选项,在组中选择一个上次未选中的选项时,其他选项自动变成未选中状态。用户可以在应用程序中添加单选按钮,并通过设置不同的属性满足自己的需要。

属性对同一组单选按钮的设置非常重要,每一个按钮的Caption属性用于设置单选按钮的显示文本。一组中的第一个控件要选中Croup属性,表示一组控件的开始,同组的其他控件则不能设置Gro叩属性,并且同一组控件的Tab Order要求是连续的。

打开C1assWizard的Member Variables标签页,可以发现对一组单选按钮,列表中只出现第一个控件ID,这意味着只能在对话框类中设置一个值类型的成员变量。该变量的值是int型,表示所选中的单选按钮在组中的序号,序号从0开始。例如,如果选择第2个单选按钮,则返回值为1。同样,一组单选按钮只能在对话框类设置一个单选按钮对象,也就是说一个单选按钮对象控制一组单选按钮。

MFC除了提供值类型成员变量操作单选按钮,还支持Win32 API函数通过控件ID直接操作单选按钮,CheckRadioButton()用于设置单选按钮的选中状态,函数原型为
CDialog::CheckRadioButton(int nIDFirstButton,int nIDLastButton,int nID_CheckButton);
该函数包括3个参数,第一个参数是一组单选按钮中第一个按钮的ID,第二参数是一组单选按钮中最后一个按钮的ID,第三个参数是设置为选中的单选按钮的ID.函数IsDlgButtonChecked()用于检查一个按钮是否被选中,函数原型为
CDialog::IsDlgButtonChecked(int nIDButton);
该函数只包含一个参数,即所检查按钮的ID号,返回值为true或false.

Radio按钮属性对话框的Style标签页:
1 .Auto
该项被选中时,控件状态将自动改变。该项通常被选中。
2. Left text
把控件的标题放在控件的左边。通常,控件的标题放在控件的右边。
3. Push-like
将控件设置成具有下压按钮的外观。则单击该按钮时,由原来的凸状态改变成下压状
态。
4. Multiline
控件的标题可通过多行显示。若该项未被选中,则标题超过按钮的宽度时,自动截去
后面部分
5. Flat
将控件左边的小圆圈显示为平放。默认为凹入。
6. Icon
将控件标题设置为图标。该项通常未选中。
7. Bitmap
将控件的标题用位图代替。Bitmap与Icon选项中,至多选中一个。该选项通常未选中。

例6_3建立一个单文档应用程序,添加包含单选按钮的RadioButton对话框,学习按钮的使用。RadioButton对话框的界面设计如下:


程序运行结果: 程序代码下载:



(四)复选按钮

复选按钮与单选按钮一样,是Windows提供的另一种形式的按钮。使用复选按钮,可以从一组选项中选择一个选项或多个选项,各个选项之间的选中状态互不相关。

使用C1assWizard可以为每一个复选框按钮在它所在的对话框类中添加一个值类型的成员变量用于传递数据,该变量的值是BOOL型,值为true时表示选中复选框,值为false时表示未选中复选框。

MFC同样支持Win32 API函数对复选框控件的操作,函数CheckDlgButton()设置一个复选框的选中状态,函数原型为
CDialog::CheckDlgButton(int nIDButton,UNIT nCheck);

该函数包括二个参数,第一个参数是复选框按钮的ID,第二个参数设置按钮的选中状态,值为BST-CHECKED或1时表示选中,值为BST-UNCHECKED或0时表示按钮未选中。
例6_4编写一个简单的CheckBox对话框。界面如下:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值