• ベストアンサー

VC++2010のラジオボタンの選択されている読取

VC++2010のラジオボタンの現在選択されている読み取りのことで質問なんですが、 自分は今VC++2010 MFC でソフトウェアを作っています。 そこで質問なんですが、 ラジオボタンが7つあり、その中からどれが選択されているか知る関数(例:エディットボックスの文字列を読み取る関数GetWindowText()関数など)が分からなかったので質問させていただきました。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.7

状態が変わったら…とは微妙に違いますがBN_CLICKEDでしょうかね。>#2 ラジオボタンだとフォーカスが移動したら…というのも見られますが。 同一グループ内のラジオボタンだとカーソルキーで切り替えできたと思いますので、フォーカスが移動したら…に見えるのかも知れませんね。 振り返ってみるとラジオボタンってほとんど使ったことないなぁ…。

その他の回答 (6)

回答No.6

せめてこんな感じにしましょうよ。 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)
回答No.5

こんなコードでしょうか? 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"; }

回答No.4

ラジオボタンの親ウィンドウがCWndクラスを継承している(例えばCDialogの派生クラスなど)であれば、CWnd::GetCheckedRadioButtonが使えます。 CWnd::GetCheckedRadioButton http://msdn.microsoft.com/ja-jp/library/h0tw863c(v=vs.100).aspx

  • kumatti1
  • ベストアンサー率60% (73/121)
回答No.3

> 3つ4つのラジオボタンがあると Radio button毎にWindow handle があるのにですか?

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

記憶の彼方なんだけど, ラジオボタンで状態が変わったらイベントが飛びませんでしたっけ?

  • kumatti1
  • ベストアンサー率60% (73/121)
回答No.1

BM_GETCHECK message (Windows) http://msdn.microsoft.com/en-us/library/windows/desktop/bb775986(v=vs.85).aspx とか。

hanyu-yuugo
質問者

補足

御回答ありがとうございます。 試してみるとラジオボタンが2つの場合は0と1で返されわかるんですが 3つ4つのラジオボタンがあると わからないみたいです(基本0と1しか返されないので)

関連するQ&A

  • VC++2010 ボタンなどのレイアウト大きさ変更

    VC++2010のMFCで現在開発しているんですが、 ボタン、スタティックテキスト、エディットボックスの文字の大きさを変更したいんですが どのようにすればいいかわかりません。よろしくお願いします。 またステータスバーに色を付けたいんですがどのようにすれば色を付けることができますか? よろしくお願いします。

  • ボタンの表示の色、フォントを変更したい

    VC++でプログラミングしています。 MFCのダイアログベースのEXEを造っています。 ダイアログにはボタンとエディットボックスを貼り付けています。 私がやりたいのは以下のことです。 ・ボタンの色を設定したい ・ボタン、エディットボックスに表示する文字の色を設定したい ・ボタン、エディットボックスに表示する文字のフォント(サイズ)を設定したい プロパティでサイズ変更すると全体に反映されてしまうので、個々の コントロールについて制御したいと思っています。 ヘルプで調べて、それらしい関数を見つけるのですが使い方がわかりません。 VCを始めたばかりで、クラスの理解がまだ浅いです。。。 関数の説明は理解できても、「じゃあ、コードはどう書くの?」という状態です。 「○○ は ×× のメンバではありません」と、よく怒られてます。。。 識者の方、ご教授願います。 コードがどうなるのか知りたいので、簡単なサンプルコードがあると助かります。 また、質問ではないのですが、「この関数は○○をする」というのではなく、 「○○をするにはこの関数を使う」という様に調べられる、お勧めの書籍、 Webなどがありましたら教えてください。 今後の勉強に役立てたいと思っています。

  • VC++

    今.NETでVC++をやっているのですが、 Aのエディットボックスでキーボードから文字を入力、 決定ボタンを押下後、Bのエディットボックスに出力させるプログラムを教えていただけませんか? Cは経験あるのですが、VC++となると少し…

  • VC++2010 エディットボックス 数値検出

    VC++2010 エディットボックス 数値検出について質問なんですが、 そういう関数とかありますか?  数値が0.01~65536まで入力される仕様になっており 文字列を受信したら無効にするようにしたいのですが よろしくお願いします

  • VC++ ラジオボタンの初期値について

    VC++ 2010でソフトを作成しています。 そこでラジオボタンを使用して、項目を選択するように作成しているのですが、 最初にソフトを開いた時に、どこかがすでに選択されているようにする方法がわかりません。 教えて下さい。  現在はアプリをたちあげるとラジオボタンにどれも選択されていません。

  • VC++ MFC スピンボタンについて

    VC++ .NET2005でプログラムを作成中です。 スピンボタンで「1~100」までを指定するものがあり、 ※スピンボタン(IDC_SPIN1)、エディットボックス(IDC_SPNED1) スピンボタンで指定されたものを別のエディットボックス(IDC_EDIT1)内に「0」を指定分CStringで表示したいです。 例: スピンボタンで5を指定 ↓ 00000 スピンボタンで15を指定 ↓ 000000000000000 どのようなプログラムにしたらよいのでしょうか? よろしくお願いします。

  • VC++2010 MFC エディットボックスの質問

    VC++2010 MFC エディットボックスの質問なんですが、 バリュー型変数を使わないでどうやったら配列(char型8byte(unsigned char[8]))の中身すべてをエディットボックスにいれて表示することができますか?よろしくお願いします。配列の中身は文字もあったりします

  • ラジオボタンの選択項目

    ラジオボタンの選択項目を、セレクトボックスとテキストボックスにするにはどのようにしたらいいのでしょうか? またJavaScriptを用いてラジオボタンの値と選択されたセレクトボックス、テキストボックスの値をsubmitさせるにはどのようにするのでしょうか? ご存知の方いらっしゃいましたらお願いします。

  • VC++のエディットボックスの非表示

    VC++で、ダイアログを作りました。 エディットボックスを置いているのですが、 このエディットボックスは始めは非表示(入力を受け付けない)にするため、 このエディットボックスのプロパティにある "Disable"をtrueにして"Visible"もtrueにしました。 そこまではよかったのですが、 「入力」ボタンを押すと、エディットボックスが白く表示され、入力を受け付けるというようにしたいのですが、 エディットボックスのプロパティを変更する関数というのはあるのでしょうか? いろいろ検索などをしているのですが、方法がわかりません。よろしくお願いします。

  • MFC:リッチエディットからUnicode文字列を受け取りたい

    MFCのダイアログベースでプロジェクトを作成 ↓ プロジェクトのプロパティで「マルチバイト文字セットを使用する」を「Unicode文字セットを使用する」に変更 ↓ エディットボックスとリッチエディット2.0を適当に配置 ↓ エディットボックスとリッチエディット2.0それぞれにコントロール変数を追加 ↓ InitInstance()内に AfxInitRichEdit2(); を追加 ↓ あとは適当なところでエディットボックスとリッチエディット2.0それぞれにGetWindowText関数を使って、記入内容を取得します。     すると、エディットボックスではUnicodeの文字を入れても文字化けしないのに対し、リッチエディット2.0では文字化けしてしまいます。 例えば“Å”の半角文字を(Unicode紹介サイトからコピペする等して)入力すると、エディットボックスではそのまま“Å”なのに、リッチエディット2.0では“A”になります。   ※入力している段階では“Å”と表示されています。GetWindowText関数で取得すると“A”になってしまいます。     リッチエディット2.0からUnicode文字を正常に受け取れる方法はありませんでしょうか。

専門家に質問してみよう