- ベストアンサー
VC++2010のラジオボタンの選択されている読取
VC++2010のラジオボタンの現在選択されている読み取りのことで質問なんですが、 自分は今VC++2010 MFC でソフトウェアを作っています。 そこで質問なんですが、 ラジオボタンが7つあり、その中からどれが選択されているか知る関数(例:エディットボックスの文字列を読み取る関数GetWindowText()関数など)が分からなかったので質問させていただきました。 よろしくお願いします。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
状態が変わったら…とは微妙に違いますがBN_CLICKEDでしょうかね。>#2 ラジオボタンだとフォーカスが移動したら…というのも見られますが。 同一グループ内のラジオボタンだとカーソルキーで切り替えできたと思いますので、フォーカスが移動したら…に見えるのかも知れませんね。 振り返ってみるとラジオボタンってほとんど使ったことないなぁ…。
その他の回答 (6)
- m-take0220
- ベストアンサー率61% (480/785)
せめてこんな感じにしましょうよ。 int nChecked; nChecked = GetCheckedRadioButton(IDC_RADIO1, IDC_RADIO5); switch(nChecked) { case IDC_RADIO1 : ... break; case IDC_RADIO2 : ... break; case IDC_RADIO3 : ... break; case IDC_RADIO4 : ... break; case IDC_RADIO5 : ... break; }
- uyama33
- ベストアンサー率30% (137/450)
こんなコードでしょうか? if(IDC_RADIO1 == GetCheckedRadioButton(IDC_RADIO1, IDC_RADIO5) ){ k = 512; keylength = "512"; } if(IDC_RADIO2 == GetCheckedRadioButton(IDC_RADIO1, IDC_RADIO5) ){ k = 1024; keylength = "1024"; } if(IDC_RADIO3 == GetCheckedRadioButton(IDC_RADIO1, IDC_RADIO5) ){ k = 1536; keylength = "1536"; } if(IDC_RADIO4 == GetCheckedRadioButton(IDC_RADIO1, IDC_RADIO5) ){ k = 2048; keylength = "2048"; } if(IDC_RADIO5 == GetCheckedRadioButton(IDC_RADIO1, IDC_RADIO5) ){ k = 2560; keylength = "2560"; }
- m-take0220
- ベストアンサー率61% (480/785)
ラジオボタンの親ウィンドウがCWndクラスを継承している(例えばCDialogの派生クラスなど)であれば、CWnd::GetCheckedRadioButtonが使えます。 CWnd::GetCheckedRadioButton http://msdn.microsoft.com/ja-jp/library/h0tw863c(v=vs.100).aspx
- kumatti1
- ベストアンサー率60% (73/121)
> 3つ4つのラジオボタンがあると Radio button毎にWindow handle があるのにですか?
- Tacosan
- ベストアンサー率23% (3656/15482)
記憶の彼方なんだけど, ラジオボタンで状態が変わったらイベントが飛びませんでしたっけ?
- kumatti1
- ベストアンサー率60% (73/121)
BM_GETCHECK message (Windows) http://msdn.microsoft.com/en-us/library/windows/desktop/bb775986(v=vs.85).aspx とか。
補足
御回答ありがとうございます。 試してみるとラジオボタンが2つの場合は0と1で返されわかるんですが 3つ4つのラジオボタンがあると わからないみたいです(基本0と1しか返されないので)