MFC复选框CheckBox使用 ++
来源:互联网 发布:云计算和大数据的关系 编辑:程序博客网 时间:2024/05/17 05:17
MFC中复选框checkbox控件,至少有四种方法对其进行操作,
第一种是利用Cbutton成员函数GetCheck和SetCheck,
第二种是利用CWnd成员函数IsDlgButtonChecked,
第三种就是把checkbox复选框控件与Value类别BOOL型变量相关联,第
四种就是把checkbox复选框控件与Control类别CButton类型变量相关联。
一、用CButton成员函数
MFC中复选框CheckBox的基类是CButton。那么就可以用GetDlgItem来获取复选框的指针,再用Cbutton成员函数GetCheck和SetCheck来获取和设置选中状态。得到复选框状态的函数:
int state =((CButton *)GetDlgItem(IDC_CHECK1))->GetCheck();
此处有两点需要注意:
1.GetDlgItem函数返回一个CWnd*的指针,而我们需要一个CButton类的指针,CButton派生于CWnd,因此可以用强制转换,否则VS2010会提示“不是“CWnd”的成员”
2.优先级的问题。(类型)强制转换运算符的优先级小于对象运算符->,因此要在->加上(),否则VS2010会提示 “不是“CWnd”的成员”
当state == BST_UNCHECKED 时表示该复选框没有被选中;
当state == BST_CHECKED 时表示该复选框被选中;
当state == BST_INDETERMINATE 时表示不确定(applies only if the button has the BS_3STATE or BS_AUTO3STATE style);
设置复选框状态的函数:
CButton* pBtn = (CButton*)GetDlgItem(IDC_CHECK_MIXI);
pBtn->SetCheck(1);
SetCheck(BST_CHECKED)表示设置复选框为“选中”状态;
SetCheck(BST_UNCHECKED)表示设置复选框为“未选中”状态;
SetCheck(BST_INDETERMINATE)设置复选框为不确定状态(This value can be used only if the button has the BS_3STATE or BS_AUTO3STATE style.);
二、用CWnd成员函数
CButton是从CWnd继承来,那么就可以用IsDlgButtonChecked来获取和设置check box的状态。另外MSDN上海说明IsDlgButtonChecked还可以用于单选框Radio button。
UINT IsDlgButtonChecked( int nIDButton ) const;
nIDButton为控件ID
函数功能:
该函数可以确定某个按钮控制是否有选中标志,或者三态按钮控制是否为灰色的、选中的、或两者都不是。
返回值:
使用BS_AUTOCHECKBOX、BS_AUTORADIOBUTTON、BS_AUTO3STATE、BS_CHECKBOX、BS_RADIOBUTION或BS_3STATE样式创建的按钮的返回值可以是如下值之一:
BST_CHECKED:表示按钮被选中。
BST_INDETERMINATE:表示按钮是灰色的,即为不确定状态(只有具有BS_3STATE或BS_AUTO3STATE样式的按钮才使用该值)。
BST_UNCHECKED:表示该按钮未选中(unckecked)。如果该按钮用其他任何样式,那么返回值为零。
if ( BST_CHECKED == IsDlgButtonChecked( IDC_CHECK1 ) )
{
//IDC_CHECK1是CheckBox控件。
//check box 被选中执行相关动作
}
三、关联Value类别BOOL类型成员变量
复选框CheckBox控件添加一个控件类型的BOOL值变量如:BOOL m_ocupy1;
void calcuArea::DoDataExchange (CDataExchange *pDX)
{//此代码利用类向导可以自动生成
CAcUiDialog::DoDataExchange (pDX) ;
DDX_Check(pDX, IDC_CHECK1, m_ocupy1);
}
- UpdateData(TRUE);//从控件获得数据 获得输入数据后可以进行相应操作
- state = m_ocupy1;
四、关联Control类别CButton类型成员变量
//此代码利用类向导可以自动生成
- void Cprop2::DoDataExchange(CDataExchange* pDX)
- {
- CPropertyPage::DoDataExchange(pDX);
- DDX_Control(pDX, IDC_CHECK1, m_chk1);
- DDX_Control(pDX, IDC_CHECK2, m_chk2);
- DDX_Control(pDX, IDC_CHECK3, m_chk3);
- DDX_Control(pDX, IDC_CHECK4, m_chk4);
- }
这样m_chk1就等同于该复选框空间了,得到了该控件的实例,你可以调用该控件的所有函数。
- UpdateData(TRUE);//从控件获得数据 获得输入数据后可以进行相应操作
- state = m_chk.GetCheck();
- MFC复选框CheckBox使用
- MFC复选框CheckBox使用
- MFC复选框CheckBox使用
- MFC复选框CheckBox使用 ++
- MFC复选框Checkbox
- MFC中复选框 checkbox
- 复选框CheckBox的使用
- MFC使用复选框控件
- MFC复选框的使用
- js checkbox(复选框) 使用集锦
- vs2010 checkbox复选框的使用
- adroid复选框checkbox的使用
- Android之复选框CheckBox使用
- 006CheckBox复选框的使用
- 使用CSS3美化复选框checkbox
- checkbox复选框使用及选定事件
- MFC ListBox实现CheckBox功能(附带复选框)
- 非MFC的界面编程 - 复选框CHECKBOX
- 1068. 万绿丛中一点红(20)
- (HDU
- 自动行为操控Steering(三)—远离(单体操控)
- JavaWeb核心技术学习笔记(二)——Http协议
- java练习——求数组的最大值、最小值并升序降序排列
- MFC复选框CheckBox使用 ++
- 1027:求具有abcd=(ab+cd)^2性质的四位数
- SpringCloud服务发现Eureka
- 记录git和github的常用命令
- 经典卷积神经网络LeNet-5模型
- FPGA实现图像处理中的直方图统计
- 几个经典的编程题
- Python中使用 = 赋值,使用copy()复制
- Swift 比较运算符