MFC--按钮(radio button,check box)

CBitmapButton类

        在MFC中,要使用图形按钮,一般会选择CBitmapButton类,使用CBitmapButton类可以设置按钮的Normal、Selected、Focused和Disabled四种状态的bmp图像,这四副状态图像要求同尺寸大小,其中normal状态图片是必需提供的。常见调用代码示例:

CBitmapButton m_bmpBtn; 
DDX_Control(pDX, IDC_BUT_PLAY, m_btnPlay); //关联控件
//CBitmapButton对象m_bmpBtn的LoadBitmaps函数加载程序内bmp资源。 
m_bmpBtn.LoadBitmaps(IDB_BITMAP1,IDB_BITMAP2,IDB_BITMAP3,IDB_BITMAP4); 
m_bmpBtn.SizeToContent(); //让按钮变成图片的大小

按钮加提示信息
1、在类头文件中声明CToolTipCtrl的类对象m_ctrlTT。
2、在初始化函数OnInitDialog()中设置m_ctrlTT。
EnableToolTips(TRUE);//enable use it m_ctrlTT.Create(this);
m_ctrlTT.Activate(TRUE); m_ctrlTT.SetTipTextColor(RGB(0,0,255));//font color
m_ctrlTT.SetDelayTime(150);//delay time //IDC_TEST为你想添加提示的控件IDC,"hello为想添加的提示语句"
m_ctrlTT.AddTool(GetDlgItem(IDC_TEST),(LPCTSTR)"hello");
3、在ClassWizard里添加PreTranslateMessage消息函数,并添加如下语句。 m_ctrlTT.RelayEvent(pMsg);

radio button

radiobutton通常都是成组使用的,在一组里面是互斥的。

分组的原则是:

1、首先将RadioButton控件定好Tab顺序,具体方法:工具栏“格式”—>Tab键顺序”选项选中,然后按照预定的顺序依次点击对话框上面的RadioButton按钮,Tab键顺序设定完成。

2、按照上面的Tab键顺序进行分组,然后设定每组第一个RadioButtonGroup属性为TRUE,分组完成,即从当前设置Group属性为TRUERadioButton开始直到碰到下一个选上Group属性的RadioButton的前一个RadioButton为一个组。

3、为单选控件定义Control变量或Value变量,每组只能定义一个,通过设定值来确定哪一个RadioButton被选中,其中-1表示该组均不被选中,0表示该组第一个RadioButton被选中,1表示第二个……)。

例子;

voidCRadioButtonInstanceDlg::OnBnClickedRadio1()

{

      // TODO: 在此添加控件通知处理程序代码

      m_Radio1=0; //选中此组的第一个RadioButton

      CString m_R1;

      m_R1.Format(_T("the value of m_Radio1 is %d"),m_Radio1);

      AfxMessageBox(m_R1);

}

voidCRadioButtonInstanceDlg::OnBnClickedRadio2()

{

      // TODO: 在此添加控件通知处理程序代码

      m_Radio1=1;//选中此组的第二个RadioButton

      UpdateData(FALSE);

}


Check box

在界面设计中,我们经常会用到Check Box这个控件,Check Box 的使用方法与Radio Button 的用法相似,但比它要简单得多。
一、设定Check Box为 选中状态
((CButton*)GetDlgItem(ID号))->SetCheck(TRUE);
(SetCheck(FALSE)) 为不选中,如果想初始化为选中状态,则在InitDlg函数中加入下面这段语句。
( (CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);
二、检查Check Box是否为选中状态
可使用GetCheck()这个函数,如下:
if(BST_CHECKED==((CButton*)GetDlgItem(IDC_RADIO1))->GetCheck()) 判断是否选中;
if(BST_UNCHECKED==((CButton*)GetDlgItem(IDC_RADIO3))->GetCheck()) 判断是否未选中。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山西茄子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值