【发布时间】:2008-09-16 15:22:02
【问题描述】:
当我初始化一个对话框时,我想选择表单上的一个单选按钮。我没有看到使用类向导关联控件变量的方法,就像您通常使用 CButtons、CComboBoxes 等做的那样......
此外,它甚至不存在 CRadioButton 类。
如何选择几个单选按钮之一?
【问题讨论】:
当我初始化一个对话框时,我想选择表单上的一个单选按钮。我没有看到使用类向导关联控件变量的方法,就像您通常使用 CButtons、CComboBoxes 等做的那样......
此外,它甚至不存在 CRadioButton 类。
如何选择几个单选按钮之一?
【问题讨论】:
使用CWnd::CheckRadioButton 设置选择组中的一个按钮,使用CWnd::GetCheckedRadioButton 检索选定按钮的ID。请务必在您的对话框对象上调用这些方法,而不是任何单选按钮对象。
【讨论】:
Dialog-> 而不是 RadioButton->
DDX_Radio 上获得了一个ASSERT,这是因为从UpdateData 调用中调用了pRadioButton->SetCheck(),该调用在多次分配单选按钮值时触发。
单选按钮和复选按钮只是按钮。使用CButton 控件并使用GetCheck/SetCheck。
【讨论】:
按照 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);
【讨论】: