質問
ダイアログを初期化するときに、フォーム上のラジオ ボタンの 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);
所属していません StackOverflow