MFC RADIO BUTTON分组方法

分组后,同组的选择状态是互斥的,从而达到控件单选的目的。

组的划分

radio button的组是靠控件的GROUP属性与TAB序号判断的。

自TAB序号依次向下,从GROUP属性设置为true的开始,直到下一个GROUP属性设置为true的radio控件都是一组。

GROUP属性与TAB顺序

属性的设置可通过资源视图中通过VC或VS的图形界面修改,

TAB顺序也可在通过 Layout -> tab order 或快捷键Ctrl + D 通过鼠标点击设置。

但其实质是.rc文件中的属性与顺序

IDD_RADIOBUTTONTEST_DIALOG DIALOGEX 0, 0, 320, 200
STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
EXSTYLE WS_EX_APPWINDOW
CAPTION "RadioButtonTest"
FONT 9, "MS Shell Dlg", 0, 0, 0x1
BEGIN
    CONTROL     "Radio1",IDC_RADIO1,"Button",BS_AUTORADIOBUTTON | WS_GROUP,36,24,37,10
    CONTROL     "Radio2",IDC_RADIO2,"Button",BS_AUTORADIOBUTTON,36,49,37,10
    CONTROL     "Radio3",IDC_RADIO3,"Button",BS_AUTORADIOBUTTON,36,74,37,10
    CONTROL     "Radio5",IDC_RADIO5,"Button",BS_AUTORADIOBUTTON,96,49,37,10
    CONTROL     "Radio6",IDC_RADIO6,"Button",BS_AUTORADIOBUTTON | WS_GROUP,96,74,37,10
    CONTROL     "Radio4",IDC_RADIO4,"Button",BS_AUTORADIOBUTTON,96,24,37,10
END

以这段.rc文件为例,有6个radio控件,BEGIN到END间的顺序便对应tab order,WS_GROUP对应BUTTON控件的GROUP属性,按照上述的分组原则,此时1235为一组,64为一组。

P.S. 为什么是MFC呢……如果非要个原因 那就是生活所迫吧

猜你喜欢

转载自www.cnblogs.com/firfilter/p/11255657.html