Step 5. 解析条件の入力(応用編 ラジオボタンの設置)

解析関数の選択などはラジオボタンで行ないます。

2. ダイアログボックスの設置(その1)

エディットボックスの設置と同様の手順でダイアログボックスを設置します。ツールバーからまずグループボックスを取り出してきとうな位置に配置します。つづいてラジオボタンを必要な数だけこのグループボックス内に配置します。取り付けた順番にIDC_RADIO1などとIDがつきますので確認してください。

3. ダイアログボックスの設置(その2 タブオーダー)

タブオーダーを確認します。ダイアログボックスの編集画面で Ctrl+D キーを押すといままで作ってきたラジオボタンやグループボックス、OKボタンなどのよこに番号がつきます。これが現在のタブオーダーです。これを変更するにはマウスで各コントロール(ラジオボタンなど)をクリックするとクリックした順に番号がつけかわります。確定するには再度 Ctrl+D キーです。
(注意)ここで必ずラジオボタンを上から順に番号をつけ最後のラジオボタンの次にグループボックスをクリックします。(こうでなくてもいいのですが話がややこしくならないようにこうします。)
つづいて一番若い番号のラジオボタンのところで右クリックしプロパティを選択します。一般のところのグループにチェックを入れます。つづいてグループボックスも同様にグループにチェックをいれます。つぎはClassWizardを立ち上げます。(どこかで右クリックして選択する。)するとコントロールIDのところに IDC_RADIO1が見えるはずです。ここで変数の追加を選択します。メンバ変数の入力画面が出ますのでここに m_radioなどといれればOKです。

さて、このm_radioの意味ですが、一番上のラジオボタンが押されたときが0次が1というふうになっています。


3. ラジオボタンの初期化と取得(エディットボックスの値の設定)

エディットボックスの値の取得とおなじようにします。下記のように m_radio の値をみればどのラジオボタンが押されたかがわかりますし、逆にこの値を変更(必ず DoModal を呼ぶ前に)することで初期値を決められます。ここではエディットボックスの値も前回入力したものを保存するようにしています。

void CStep1View::OnSumDataBase() 
{
    // TODO: この位置にコマンド ハンドラ用のコードを追加してください
    int ret;

    static int radio=0;

    static double base=0.0;

    CMyDialog myDL;

    myDL.m_radio=radio;
    myDL.m_base=base;

    ret=myDL.DoModal();
    if (ret==IDOK) {
        radio=myDL.m_radio;
        base=myDL.m_base;
        if (radio==0) {
            Geta=base;
        }
        else {
            Geta=-base;
        }
    }

}