質問

ダイアログを初期化するときに、フォーム上のラジオ ボタンの 1 つを選択したいと考えています。通常、CButton や CComboBox などで行うように、クラス ウィザードを使用してコントロール変数を関連付ける方法がわかりません。

さらに、CRadioButton クラスが存在することさえ好みません。

複数のラジオ ボタンから 1 つを選択するにはどうすればよいですか?

役に立ちましたか?

解決

ラジオボタンとチェックボタンは単なるボタンです。使う CButton 制御して使用する GetCheck/SetCheck.

他のヒント

使用 CWnd::CheckRadioButton 設定するには、グループ内の 1 つのボタンを選択し、 CWnd::GetCheckedRadioButton 選択したボタンの ID を取得します。これらのメソッドは、ラジオ ボタン オブジェクトではなく、ダイアログ オブジェクトで必ず呼び出してください。

mosが言ったことを続けると、次のことがうまくいきました。

CButton* pButton = (CButton*)GetDlgItem(IDC_RADIOBUTTON);
pButton->SetCheck(true);
void CMyDlg::DoDataExchange(CDataExchange* pDX)
{
  ...
  DDX_Radio(pDX, IDC_RADIO1, m_Radio);
  ...
}

しかし、それはウィザードが生成するものと同じです

次のワンライナーを使用できます。

::SendMessage(GetDlgItem(IDC_RADIO1)->m_hWnd, BM_SETCHECK, BST_CHECKED, NULL);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top