VC控件的group属性
来源:互联网 发布:怎么查询淘宝授权书 编辑:程序博客网 时间:2024/06/07 03:04
作用
VC控件的group属性主要是为Radio Button服务的,其作用是把一组相关的radio button都group到一起,这几个radio button可以共用一个(整型)变量,从而简化代码。
VS2010中文版IDE的描述:
指定基于Tab键顺序的一组控件中的第一个控件。
描述有些拗口,下面举一个示例进行说明。
例子
UI
创建两组radio,一组描述颜色,另外一组描述fruit。每一组都设计了三个radio button。
另外设计一个Edit控件,显示用户的选择。UI效果如下:
Resource
这个对话框的资源代码如下:
IDD_GROUPTEST_DIALOG DIALOGEX 0, 0, 191, 163STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENUEXSTYLE WS_EX_APPWINDOWCAPTION "GroupTest"FONT 8, "MS Shell Dlg", 0, 0, 0x1BEGIN GROUPBOX "Color",IDC_STATIC,20,17,154,34 CONTROL "Red",IDC_RED,"Button",BS_AUTORADIOBUTTON | WS_GROUP,29,27,40,17 CONTROL "Green",IDC_GREEN,"Button",BS_AUTORADIOBUTTON,68,28,40,17 CONTROL "Blue",IDC_BLUE,"Button",BS_AUTORADIOBUTTON,117,28,40,17 GROUPBOX "Fruit",IDC_STATIC,21,62,152,43,WS_GROUP CONTROL "Apple",IDC_APPLE,"Button",BS_AUTORADIOBUTTON | WS_GROUP,32,75,40,17 CONTROL "Orange",IDC_ORANGE,"Button",BS_AUTORADIOBUTTON,70,76,40,17 CONTROL "Banana",IDC_BANANA,"Button",BS_AUTORADIOBUTTON,120,76,40,17 LTEXT "Selection:",IDC_STATIC,22,115,83,8 EDITTEXT IDC_SELECTION,22,130,152,17,ES_AUTOHSCROLL | ES_READONLYEND
这里已经定义好了各个控件的tab顺序。
group
IDC_RED/Green/Blue这三个radio button是一组的,所以需要给第一个radio button(即IDC_RED)设置group属性,即设置为True;后面的两个radio button的group属性设置为false。以此说明这三个是一组。
表示color的最后一个radio button是IDC_BLUE,所以该控件接下来的分组框Fruit IDC_STATIC就需要设置为True,说明这个Fruit IDC_STATIC开始了一个新的分组。等价于说,IDC_RED/Green/Blue这三个radio button是一组,啰嗦了???
虽然,这个Fruit IDC_STATIC的group属性设置为False也不会有功能上的问题,但这种及时设置True表示终结一个group的划分,总是一个好的编程习惯罢。
类似地,可以了解接下来的三个Radio Button,即IDC_APPLE,IDC_ORANGE,IDC_BANANA的group属性。
可以看到在IDC_BANANA后面的”Selection:” IDC_STATIC没有设置group属性为True,尽管不是一个好的编程习惯,但不影响程序的功能。
为控件映射一个成员变量
对于group起来的一组radio button,只需要为第一个控件映射一个整型变量即可。如此,这一组的radio button对应的整数就分别为0,1,2,……。
代码
头文件:
int m_iColor;int m_iFruit;CString m_sSelection;afx_msg void OnBnClickedRed();afx_msg void OnBnClickedGreen();afx_msg void OnBnClickedBlue();afx_msg void OnBnClickedApple();afx_msg void OnBnClickedOrange();afx_msg void OnBnClickedBanana();void UpdateSelection();
实现文件:
void CGroupTestDlg::OnBnClickedRed(){ UpdateSelection();}void CGroupTestDlg::OnBnClickedGreen(){ UpdateSelection();}void CGroupTestDlg::OnBnClickedBlue(){ UpdateSelection();}void CGroupTestDlg::OnBnClickedApple(){ UpdateSelection();}void CGroupTestDlg::OnBnClickedOrange(){ UpdateSelection();}void CGroupTestDlg::OnBnClickedBanana(){ UpdateSelection();}void CGroupTestDlg::UpdateSelection(){ UpdateData(TRUE); const size_t MAX_SIZE = 3; static CString sColors[MAX_SIZE] = {"Red", "Green", "Blue"}; static CString sFruits[MAX_SIZE] = {"Apple", "Orange", "Banana"}; CString sColor("None"), sFruit("None"); if (m_iColor >= 0 && m_iColor < MAX_SIZE) sColor = sColors[m_iColor]; if (m_iFruit >= 0 && m_iFruit <= MAX_SIZE) sFruit = sFruits[m_iFruit]; m_sSelection.Format("Color(%d): %s; Fruit(%d): %s", m_iColor, sColor, m_iFruit, sFruit); UpdateData(FALSE);}
- VC控件的group属性
- VC控件的Group属性
- VC控件的group属性
- 控件的Group属性
- 控件的Group属性 一个菜鸟问题 MFC高手进来
- 关于VC单选按钮不能设置变量的问题以及Group属性的设置
- 关于VC单选按钮不能设置变量的问题以及Group属性的设置
- 关于VC单选按钮不能设置变量以及Group属性的设置问题
- 新手看过来:VC对话框控件属性的修改
- 2.VC(ui)-MFC控件自绘属性的总结
- 关于VC中输入框控件的密码属性
- VC++静态文本框/PICTURE控件的notify属性
- 操作Group内的控件
- VC单选按钮设置Group属性后有些按钮对应的变量值总是0的问题
- VC控件的使用
- VC++控件的使用
- VC的CListCtrl控件
- VC的CListCtrl控件
- 使用databinding遇到的问题
- 阅读《Android 从入门到精通》(20)——图片视图
- 多个checkbox实现单选的checkbox
- Oracle Job定时器的写法
- CSS3 新功能
- VC控件的group属性
- 第四章 INI配置——《跟我学Shiro》
- ListView点击Item展开隐藏项(单项展开、多项展开、复杂布局时的展开处理)
- android开发中更换图片,程序运行后新图片没有替换旧图
- Oracle unix下备份数据
- to_char转换小数点前0丢失问题
- (NO.00005)iOS实现炸弹人游戏(八):游戏主角(一)
- webdriver对于模态窗口的处理
- Unity 获取Android手机返回键Home按键信息