Seleccione mediante programación un botón de radio MFC
Pregunta
Cuando inicializo un cuadro de diálogo, me gustaría seleccionar uno de los botones de opción del formulario.No veo una manera de asociar una variable de Control usando el Asistente de clases, como lo haría normalmente con CButtons, CComboBoxes, etc.
Además, ni siquiera le gusta que exista una clase CRadioButton.
¿Cómo puedo seleccionar uno de los varios botones de radio?
Solución
Los botones de radio y los botones de verificación son solo botones.Usar una CButton
control y uso GetCheck
/SetCheck
.
Otros consejos
Usar CWnd::CheckRadioButton para configurar seleccione un botón en un grupo y CWnd::GetCheckedRadioButton para recuperar el ID del botón seleccionado.Asegúrese de llamar a estos métodos en su objeto de diálogo y no en ninguno de los objetos del botón de opción.
Siguiendo con lo que dijo mos, lo siguiente funcionó:
CButton* pButton = (CButton*)GetDlgItem(IDC_RADIOBUTTON);
pButton->SetCheck(true);
void CMyDlg::DoDataExchange(CDataExchange* pDX)
{
...
DDX_Radio(pDX, IDC_RADIO1, m_Radio);
...
}
pero es lo mismo que genera Wizard
Puedes usar esta frase ingeniosa:
::SendMessage(GetDlgItem(IDC_RADIO1)->m_hWnd, BM_SETCHECK, BST_CHECKED, NULL);