`

关于MFC单选框的使用临时记录,稍后编辑

MFC 
阅读更多
(2008-07-21 09:49 博客搬家拾遗)

先为对话框加上2个radio button,分别是Radio1和Radio2。

问题1:如何让Radio1或者Radio2默认选上?如何知道哪个被选上了?

关键是选上,“默认”只要放在OnInitDialog()即可。三种方法可以让它选上,
第一种:
((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);//选上
((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(FALSE);//不选上
((CButton *)GetDlgItem(IDC_RADIO1))->GetCheck();返回1表示选上,0表示没选上
第二种:
关 联一个congtrol型变量(子类化),好ctrl+W(即打开classwizard),点开 Member Variables,咦?怎么没有IDC_RADIO1这个ID?原来是没有分组。因为radio button通常都是成组使用的,在一组里面是互斥的。取消,回到对话框资源面板,右键Radio1查看属性把Group选上,那么,Radio1和 Radio2就是一组了(怎么知道他们是一组的?后面说)。此时,就可以为Radio1增加一congtrol型变量m_ctrlRadio1了。如下:
m_ctrlRadio1.SetCheck(TRUE);
同样可以使用GetCheck()获取状态。
第三种:
关联一个int型变量(同样需要先分组)m_nRadio1,打开对话框构造函数,你会发现有:
m_nRadio1 = -1;m_nRadio1别赋值-1表示哪个都没有选上。如果你把-1改成0,就会发现Radio1默认被选上了,依此类推,m_nRadio1的值为1 就是第二个被选上了(这里同样有问题,哪个是第一个?哪个是第二个?)。获取状态很简单,UpdateData(TRUE)后判断m_nRadio1的值即可。

问题2:如何使用多组?

多组和一组是一样的使用,只要搞清楚哪个是哪一组的就行了。再为对话框添加Radio3和Radio4。很简单,先为这些 Radio Button排个顺序,就是排列他们的TAB ORDER。在对话框资源面板上Ctrl+D,然后按你自己的理想顺序用鼠标逐个点击就可以了。不妨假设Radio1、Radio2、Radio3、 Radio4分别是1、2、3、4。Radio1和Radio3都选上Group属性,那么,1、2是一组,3、4是另外一组,因为分组的原则是在选上 Group属性的这一个开始直到碰到下一个选上Group属性的。你不妨再Ctrl+D,令Radio1、Radio2、Radio3、Radio4分别是1、3、2、4,那么Radio1和Radio3是一组,如果m_nRadio1=1,此时是Radio3被选上而不是Radio2被选上。分好了组就分别使用它们吧。

嗯,也许你还要为它们添加鼠标单击事件,非常简单。

from:http://meshless.bokee.com/3829884.html

3、调用类CWnd的成员函数GetCheckedRadioButton返回同一组单选钮中哪一个被选中。该成员函数原型如下:
int GetCheckedRadioButton(int nIDFirstButton,int nIDLastButton);
第一个参数nIDFirstButton是同一组中的第一个单选钮控件的ID,nIDLastButton是同一组中最后一个单选钮控件的ID。成员函数GetCheckedRadioButton返回指定组中所选中的单选钮的ID,如果没有按扭被选中,则返回0。
注意,若干个单选钮是否属于同一组是以其Tab顺序来排定的,而GetCheckedRadioButton函数是以ID顺序来检查按钮的选定状态的。因此,如果传递给函数GetCheckedRadioButton的第一个参数的值大于第二个参数的值时,其返回值总是为0,而事实上由这两个参数指定的单选钮的Tab顺序可能恰恰相反。因此,一般情况下我们应该尽量保证同一组单选钮的资源ID是连续递增的。通常这些资源ID是在头文件Resource.h中定义的。如果你同一组的单选钮不是一次创建的,那么它们的资源 ID可能不是连续递增的,甚至可能是相反的。我们可以手动的修改资源头文件中的宏定义,以保证GetCheckedRadioButton函数得到正确的结果。
分享到:
评论

相关推荐

    单选框的使用

    单选框在MFC中通常由CButton类表示,虽然它的主要用途是创建普通的按钮,但通过设置特定的风格,它也可以作为单选框或复选框使用。单选框的风格是BS_RADIOBUTTON,可以通过CButton类的SetStyle函数来设置。 创建...

    VS2019MFC 控件自绘大全(按钮/复选框/单选框/菜单栏/静态文本/等控件自绘继承类)

    本教程重点讲解的是如何在MFC中实现控件的自绘,特别是针对按钮、复选框、单选框、菜单栏、静态文本等常见控件的自定义绘制。 1. **控件自绘基础** 自绘是指程序员通过重写控件的OnDraw()方法,亲自控制控件的绘制...

    MFC简单编辑框

    在Microsoft Foundation Classes (MFC)库中,"MFC简单编辑框"是一个基本的用户界面元素,用于接收和显示文本输入。MFC是Microsoft提供的一种C++类库,它为Windows API提供了一种面向对象的封装,使得开发Windows应用...

    MFC编辑框程序加源码

    在这个"**MFC编辑框程序加源码**"中,重点是讲解如何在MFC应用中使用`CEdit`类来实现编辑框功能。 `CEdit`是MFC库中的一个控件类,它是Windows API中的`EDIT`控件的封装,用于创建文本输入和显示的用户界面元素。`...

    VC单选框小程序

    本程序“VC单选框小程序”主要关注如何使用MFC(Microsoft Foundation Classes)库来操作和管理这些控件,以实现设置和获取单选按钮的选中状态。下面我们将深入探讨相关的知识点。 1. MFC库:MFC是微软为Windows...

    MFC对话框工具条添加组合框编辑框例子

    在这个例子中,我们将会探讨如何在MFC对话框中添加工具条(ToolBar)以及组合框(ComboBox)和编辑框(Edit Box),从而创建一个功能更丰富的用户界面。 首先,你需要创建一个新的MFC应用程序项目,选择"对话框基于...

    MFC 编辑框控件自绘,美化控件

    在Microsoft Foundation Classes (MFC)库中,CEdit控件是用于实现文本编辑功能的基本组件。MFC CEdit控件自绘(OwnerDraw)是指开发者通过重载特定的消息处理函数来控制控件的绘制过程,以此实现对控件外观的自定义...

    MFC组合框使用方法

    本篇文章将深入探讨MFC中组合框的使用方法,包括控件的创建、消息响应处理以及相关功能的实现。 ### 创建组合框控件 1. **在资源编辑器中创建**:首先,在MFC应用程序的资源视图中,可以选择`IDD_YOUR_DIALOG`...

    MFC 对话框控件之单选按钮

    在MFC中,单选按钮是通过`CButton`类实现的,它是`CWnd`类的派生类,专门用于处理各种类型的按钮,包括复选框和单选按钮。 1. **创建单选按钮** 在MFC中,你可以通过资源编辑器来创建单选按钮。在对话框编辑器中,...

    MFC编辑框控件背景 边框 颜色 文字 属性修改

    在Windows应用程序开发中,Microsoft Foundation...以上就是关于如何在MFC中扩展编辑框控件,实现背景颜色、文字颜色以及边框颜色修改的详细步骤。通过这样的自定义,我们可以更好地定制用户界面,满足不同的设计需求。

    用MFC实现文件拖放到编辑框

    本教程将详细解释如何使用MFC来实现文件拖放到编辑框(CEdit)的功能。这个功能在很多应用中都很常见,例如文本编辑器、代码编辑器等,允许用户通过简单的拖放操作导入文件,提高用户体验。 1. **拖放操作的基本...

    mfc中读取编辑框数据并保存

    ### MFC中读取编辑框数据并保存至TXT文档 #### 概述 在MFC(Microsoft Foundation Classes)开发环境中,经常会遇到需要读取用户输入的数据,并将其保存到文件中的需求。本文将详细介绍如何在MFC中实现从编辑框(即`...

    MFC 编辑框控制只输入小数,并控制小数位数,整数位数,值

    在MFC中,编辑框(CEdit)控件是用于接收用户输入的基础组件。本篇文章将深入探讨如何在MFC应用中实现一个特殊的编辑框,仅允许用户输入小数,并且能够限制小数位数和整数位数。 首先,我们需要理解MFC编辑框的基本...

    C++单选框的运用

    接下来,我们将详细分析给定代码片段中关于单选框的运用: ```cpp UINT nLes = GetCheckedRadioButton(IDC_RADIO1, IDC_RADIO4); switch (nLes) { case IDC_RADIO1: MessageBox("1"); break; case IDC_RADIO2: ...

    MFC列表框的使用

    本篇文章将深入探讨MFC中列表框的使用,包括其基本概念、创建与操作,以及如何将其应用于类似学生管理系统的实际场景。 一、MFC列表框基础 1. 类型: MFC中的列表框类主要有两种,CListBox和CTreeCtrl。CListBox...

    MFC Windows 程序设计之历史记录编辑框

    MFC Windows 程序设计之历史记录编辑框,适合初学MFC的小伙伴学习研究,博客中有对应的讲解和演示,避免走弯路,费时费力。也真心希望能够帮助正在苦学MFC Windows 程序设计的小伙伴们,你们的成长是我最大的幸福

    MFC 含编辑框的简单应用程序

    初学者可以通过阅读和理解这些代码来学习如何在MFC环境中使用编辑框控件。同时,为了更深入地学习MFC,建议了解MFC的架构,如消息映射机制、控件的属性和方法,以及MFC类库中的其他关键组件,如视图、文档、框架窗口...

    MFC 简单实现多编辑框记忆功能

    在MFC(Microsoft ...综上所述,实现MFC的多编辑框记忆功能涉及到MFC窗口和控件的使用、文件操作、事件处理、状态保存与恢复等多个方面。理解并熟练运用这些知识点,可以构建出高效且用户体验良好的应用程序。

    MFC限制编辑框输入的字符类型

    在MFC(Microsoft Foundation Classes)框架中,我们经常需要对用户在编辑框(CEdit类)中的输入进行控制,确保其只能输入特定类型的字符。这通常涉及到文本验证,以防止非法字符的输入或者保证数据的格式正确。本...

    自定义MFC编辑框以及按钮

    在本文中,我们将深入探讨如何在MFC(Microsoft Foundation Classes)框架中自定义编辑框(Edit Box)和按钮(Button)控件,特别是在加载透明背景资源图片以及实现鼠标交互效果方面。MFC是C++的一个类库,它为...

Global site tag (gtag.js) - Google Analytics