Last Updated 2003/02/17
Programming Tips Visual C++ MFC 他のコントロール  索 引 
ラジオボタンの操作(ループ使用)
2003/02/17

ダイアログなどの多数のラジオボタングループが存在すると一括で無効したり一括で設定したい.
ClassWizard では各グループに変数が割り当てられてしまい,どうしもてコードが長くなる.
ラジオボタンのリソース ID を連番にしてしまえばループでまわせて楽である.


    int m_nRadio[20][3];    // リソース ID を配列に

    BOOL CMyDialog::OnInitDialog()
    {
        int nID = IDC_RADIO1; 
        for( int i = 0; i < 20; i++ ) {
            for( int j = 0; j < 3; j++ ) {
                m_nRadio[i][j] = nID;
                nID++;
            }
        }
        return TRUE;
    }


    CButton m_Radio[20][3];
  
    void CMyDialog::DoDataExchange(CDataExchange* pDX)
    {
        CDialog::DoDataExchange(pDX);
        int nID = IDC_RADIO1;
        for( int i = 0; i < 20; i++ ) {
            for(int j = 0; j < 3; j++ ) {
                DDX_Control( pDX, nID, m_Radio[i][j]);
                nID++;
            }
        }
    }


参照
ラジオボタンの操作
ラジオボタンの操作(イベント)
前後のTips
ラジオボタンの操作(ループ使用)

DSS ProgrammingTipsCGI Ver2.02