单选钮用来表示一系列的互斥选项,这些互斥项常常被分成若干个组,每组仅允许用户选择一个选项;复选框与单选按钮相象,不同之处是复选框代表多重选择,用户可以选择一个或多个选项。
对话框编辑器中各组控件的对齐
按下Ctrl键并单击要对齐的各个控件,同时选中。最后选中的控件是对齐的基准,仔细观察,它周围的8个小方框是实心的,而其它被选控件周围的小方框是空心的。
在Layout菜单中选择Make Same Size的Both,可以统一控件尺寸,所选控件尺寸与基准控件相同。在Layout菜单中选择Align的Left,可以使所有被选控件的左边与基准控件对齐。选择Layout菜单中Align的Space Evenly的Down,可以使被选控件垂直间距相等。
单选按钮和复选框的使用
为了方便说明,我们假定创建了基于对话框的MFC应用程序,工程名为RadioAndCheckButton。对话框资源加入两个组框 ,第一个组框‘性别’,内有‘男’,‘女’两个单选钮;第二个组框是‘爱好’,内有‘足球’‘排球’‘蓝球’三个复选框,如下表:
控件类型 | ID | 标题(Caption) | 其它属性 |
组框 | 缺省 | 性别 | 缺省 |
单选钮 | IDC_SEX1 | 男 | Group |
单选钮 | IDC_SEX2 | 女 | 缺省 |
组框 | 缺省 | 爱好 | 缺省 |
复选框 | IDC_HOBBY1 | 足球 | 缺省 |
复选框 | IDC_HOBBY2 | 排球 | 缺省 |
复选框 | IDC_HOBBY3 | 蓝球 | 缺省 |
设置控件的Tab Order
单击Layout菜单下的Tab Order命令,设置控件的TAB键顺序(Tab Order),保证单选钮的Tab Order连续。
以Tab Order为序,从Group属性为真的控件开始(包括该控件),到下一个Group属性为真的控件结束(不包括该控件),所有的这些控件将组成一个组。对于单选钮,同一组内同时只能有一个处于被选中状态。对于由资源编辑器生成的单选按钮控件,在默认情况由Windows自动处理同组控件之间的互斥关系。
具体使用单选钮和复选框
1、调用 CButton的成员函数SetCheck设置单选钮和复选框的选中状态。该成员函数带有一个类型为整形的参数,该参数为0表示清除选中按钮的选中状态,参数为1表示设置选中按钮的选中状态。参数为2表示把三态复选框设为不确定状态。
复选框的Tristate属性:创建三态复选框。除了处于“选中”和“不选中”状态外,三态复选框还可以处于变灰状态。通常,复选框的变灰状态表示其选中状态不确定。在很多软件的安装程序中,变灰往往表示仅选中该组件的一部分。
注意,如果我们在程序中调用SetCheck设置同一组中某一单选钮为选中状态,并不意味着同时清除同一组中其它单选钮的选中状态。否则,将导致同一组中的两个按钮同时处于选中状态。这是应该避免的。因此,如果我们通过代码改变了单选钮的选中状态,一定要记得同时清除同组的其它单选钮的选中状态。
2、调用 CButton的成员函数GetCheck返回单选钮的选中状态。该函数的函数原型是
int GetCheck( ) const;
返回值可以是0、1、2,分别代表按钮处于未选中状态、选中状态或中间状态(对三态复选框而言)。