使用单选和多选框

单选

1.拖控件

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

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

3.设置单击响应内容。

  1. // 响应按钮点击的事件: 获取单选选项
    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函数。

  1. 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.

  1. // 根据当前的选中状态,修改其它的选项
    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函数调用了。

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

  1. 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;
    }
  2.  
  3. // 输出选中的项

    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. docker+zabbix,使用docker搭建zabbix服务

    Zabbix 介绍 zabbix(音同 zæbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵 ...

  2. 12.解决CCScale9Sprite或者CCControlButton无法使用的问题。

    问题: 使用CCScale9Sprite或者CCControlButton等控件的时候,会出现无法识别的情况. 解决方式: 1.include对应的头部,即#include "cocos-e ...

  3. 树状数组 LA 4329 亚洲赛北京赛区题

    复习下树状数组 还是蛮有意思的一道题: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&cat ...

  4. java poi excel导入模板设置下拉框

    import org.apache.poi.hssf.usermodel.DVConstraint; import org.apache.poi.hssf.usermodel.HSSFCell; im ...

  5. 容器ArrayList原理(学习)

    一.概述 动态数组,容量能动态增长,元素可以为null,用数组存储,非线程同步(vector线程同步) 每个 ArrayList 实例都有一个容量,该容量是指用来存储列表元素的数组的大小,自动增长(默 ...

  6. bzoj 2067 [ Poi 2004 ] SZN —— 二分

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2067 问题1:贪心考虑,应该是每个点的儿子尽量两两配对,如果剩一个就和自己合并向上,所以 a ...

  7. WP8 中使用HTML Agility Pack与友盟分享SDK遇到的 System.Xml.XPath加载问题

    今晚在尝试使用友盟最新的社交分享SDK时,按照官方Demo,并未做多少多少改动,就是去除了对微信.脸书和推特的分享.然后运行之后就一直报错 : {System.IO.FileLoadException ...

  8. 为什么JavaWeb项目要分层

    首先让我们坐着时光机回到n年前的web开发.那个时候最早都是静态的html页面,后来有了数据库,有了所谓的动态页面,然后程序猿在编码的时候,会把所有的代码都写在页面上,包括数据库连接,包括事务控制,接 ...

  9. bzoj 1704: [Usaco2007 Mar]Face The Right Way 自动转身机【贪心+差分】

    首先O(n^3)的贪心很好想,就是枚举k然后从前往后扫,扫到反就翻转区间 然后考虑优化掉翻转区间维,就是搞成差分的形式,在翻转区间的尾部打上标记,再用一个变量维护当前的翻转次数,加到当前状态上来判断是 ...

  10. bzoj 1576: [Usaco2009 Jan]安全路经Travel【spfa+树链剖分+线段树】

    这几天写USACO水题脑子锈住了--上来就贪心,一交就WA 事实上这个是一个叫最短路树的东西,因为能保证只有一条最短路,所以所有最短路合起来是一棵以1为根的树,并且在这棵树上,每个点被精灵占据的路是它 ...