使用单选和多选框

单选

1.拖控件

设置名字,CTRL+D设置顺序,属性设置第一个GROUP为TRUE;

2.设置第一个按钮绑定变量为 值 INT型 名称m_RadioIndxe;

3.设置单击响应内容。

// 响应按钮点击的事件: 获取单选选项
void CDefaultDlg::OnBnClickedGetradiobutton()
{
// 1. 通过 Updatedata(TRUE) 获取控件的信息到绑定的变量
UpdateData(TRUE);

// 2. m_RadioIndex 保存的是以 0 为起始的当前选中项
CString RadioText;
GetDlgItemText(IDC_RADIO1 + m_RadioIndex, RadioText);

// 3. 弹出选中的单选项
MessageBox(RadioText);

// 4. 通过 UpdateData(FALSE) 重新设置新的选项
m_RadioIndex = 0;
UpdateData(FALSE);
}

多选框

1.拖复选框控件

2.设置绑定变量属性。值的设置BOOL类型。控件默认类型。tri的会默认控件类型。

3.ON_COMMAND_RANGE调用自定义的OnchecBox函数。

BEGIN_MESSAGE_MAP(CMFCApplication1Dlg, CDialogEx)
ON_COMMAND_RANGE(IDC_CHECK2, IDC_CHECK4, OnCheckBox)
END_MESSAGE_MAP()
   // 多个多选按钮的响应函数,nId 表示响应的是哪个按钮
   VOID CMFCApplication1Dlg::OnCheckBox(UINT nId)
{
// 当前选中了几项
int count = 0;

// 获取控件当前的状态到变量
UpdateData(TRUE);

// 检查当前的几个多选框是否被选中
if (m_CheckBoxA == TRUE)
count++;
if (m_CheckBoxCtrlB.GetCheck() == BST_CHECKED)
count++;
// 既有值类型又有控件类型,优先设置值类型
if (m_CheckBoxC == TRUE)
count++;

// 根据选中的项,设置三态复选框的状态
if (count == 0)
m_CheckBoxState.SetCheck(BST_UNCHECKED);
else if (count == 3)
m_CheckBoxState.SetCheck(BST_CHECKED);
else
m_CheckBoxState.SetCheck(BST_INDETERMINATE);

// 将变量设置到控件上
UpdateData(FALSE);
}
   

4.

// 根据当前的选中状态,修改其它的选项
void CDefaultDlg::OnBnClickedCheck4()
{
UpdateData(TRUE);

// 判断当前是否选各种
if (m_CheckBoxState.GetCheck() == BST_CHECKED)
{
m_CheckBoxA = m_CheckBoxC = TRUE;
m_CheckBoxCtrlB.SetCheck(BST_CHECKED);
}
else if (m_CheckBoxState.GetCheck() == BST_UNCHECKED)
{
m_CheckBoxA = m_CheckBoxC = FALSE;
m_CheckBoxCtrlB.SetCheck(BST_UNCHECKED);
}

UpdateData(FALSE);
}


5.显示被勾选的选项信息。

//UpdateData()用来更新信息。在自定义的OncheckBox函数调用了。

//如果没有调用的话,绑定值的控件会无法更新数据,会一直显示没有被勾上。

void CDefaultDlg::OnBnClickedButton2()
{
CString CheckString;
CString TempString;

// 检查当前的几个多选框是否被选中
if (m_CheckBoxA == TRUE)
{
GetDlgItemText(IDC_CHECK1, TempString);
CheckString += TempString + L" ";
}
if (m_CheckBoxCtrlB.GetCheck() == BST_CHECKED)
{
m_CheckBoxCtrlB.GetWindowTextW(TempString);
CheckString += TempString + L" ";
}
if (m_CheckBoxC == TRUE)
{
m_CheckBoxCtrlC.GetWindowTextW(TempString);
CheckString += TempString;
} // 输出选中的项

MessageBox(CheckString);
}

MFC_2.1使用单选和多选框的更多相关文章

  1. 使用 SVG 制作单选和多选框动画【附源码】

    通过 JavaScript 实现 SVG 路径动画,我们可以做很多花哨的东西.今天我们要为您介绍一些复选框和单选按钮效果.实现的主要思路是隐藏原生的输入框,使用伪元素创造更具吸引力的样式,输入框被选中 ...

  2. php一些单选、复选框的默认选择方法(示例)

    转载 http://www.php.cn/php-weizijiaocheng-360029.html 一. radio和checkbox及php select默认选择的实现代码 1.radio单选框 ...

  3. Python3+Selenium3+webdriver学习笔记8(单选、复选框、弹窗处理)

    #!/usr/bin/env python# -*- coding:utf-8 -*-'''Selenium3+webdriver学习笔记8(单选.复选框.弹窗处理)''' from selenium ...

  4. iCheck获取单选和复选框的值和文本

    //获取单选和复选框的值//parameters.type:"radio","checkbox"//parameters.name:input-name//pa ...

  5. 纯css美化单选、复选框

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  6. mui单选和多选框

    具体见代码: <!doctype html> <html> <head> <meta charset="UTF-8"> <ti ...

  7. selenium+Python(定位 单选、复选框,多层定位)

    1.定位一组元素webdriver 可以很方便的使用 findElement 方法来定位某个特定的对象,不过有时候我们却需要定位一组对象,这时候就需要使用 findElements 方法.定位一组对象 ...

  8. android 中单选和复选框监听操作

    单选按钮RadioGroup.复选框CheckBox都有OnCheckedChangeListener事件,我们一起了解一下. package com.genwoxue.oncheckedchange ...

  9. js单选和复选框

    http://blog.csdn.net/chelen_jak/article/details/44827393 http://www.gbtags.com/technology/jquerynews ...

随机推荐

  1. Cocos2d-X中的ProgressTimer

     ProgressTimer即进度条,进度条在游戏开发中运用很广泛,比如在一些格斗游戏中,显示血液的变化,还有游戏载入进度,等都离不开进度条 Cocos2d-X中使用CCProgressTimer ...

  2. 2015/12/30 Java语法学习

    ①标识符包括:包名.类名.方法名.变量名.常量名.属性名 标识符书写规则:1,标识符由字母.数字._.$ 组成                      2,数字不能出现在开始位置          ...

  3. python的一些常用函数

    1 filter(function, iterable) 等价于(item for item in iterable if function(item)) 就是说,filter会遍历iterable中 ...

  4. HDU 5308 I Wanna Become A 24-Point Master(2015多校第二场)

    I Wanna Become A 24-Point Master Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 ...

  5. Ajax 之 DWR

    DWR是开源框架,类似于hibernate.借助于DWR,开发人员无需具备专业的JavaScript知识就可以轻松实现Ajax,是Ajax更平民化. 添加jar包   dwr.jar   common ...

  6. USACO Section 1.1PROB Your Ride Is Here

    题目传送门 不能提交哦   http://www.nocow.cn/index.php/Translate:USACO/ride /* ID: jusonal1 PROG: ride LANG: C+ ...

  7. html使用css让文字超出部分用省略号三个点显示的方法案例

    html使用css让文字超出部分用省略号三个点显示的方法: 我正确使用的就是下面的代码,li里面是a标记.在IE和google中使用是正常的,火狐不知道,我也不在意,等你来测 li{ display: ...

  8. codeforces 245H Queries for Number of Palindromes RK Hash + dp

    H. Queries for Number of Palindromes time limit per test 5 seconds memory limit per test 256 megabyt ...

  9. Tarjan求桥

    传送门(poj3177) 这道题是Tarjan求桥的模板题.大意是要求在原图上加上数量最少的边,使得整张图成为一个边双联通分量. 具体的做法是,先在图中求出所有的桥,之后把边双联通分量缩成点,这样的话 ...

  10. POJ1265 Area 多边形内格点数 Pick公式

    POJ1265给定一个多边形 计算边上的格点 内部的格点 以及多边形的面积 利用Pick公式  面积=内部格点数+边上格点数/2-1 将多边形分割为三角形容易证得上述公式 计算面积用叉积,计算边上格点 ...