Question

Lorsque j'initialise une boîte de dialogue, j'aimerais sélectionner l'un des boutons radio du formulaire. Je ne vois pas comment associer une variable de contrôle à l’aide de l’assistant de classe, comme vous le feriez habituellement avec CButtons, CComboBoxes, etc ...

De plus, il n'aime pas qu'une classe CRadioButton existe même.

Comment sélectionner l'un des boutons radio?

Était-ce utile?

La solution

Les boutons radio et les boutons de contrôle ne sont que des boutons. Utilisez un contrôle CButton et utilisez GetCheck / SetCheck .

Autres conseils

Utilisez CWnd :: CheckRadioButton . définir un bouton dans un groupe et CWnd :: GetCheckedRadioButton pour récupérer l'ID du bouton sélectionné. Assurez-vous d'appeler ces méthodes sur votre objet de dialogue et non sur les objets de bouton radio.

En reprenant ce que mos a dit, voici ce qui a fonctionné:

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

mais c'est la même chose que l'Assistant génère

Vous pouvez utiliser ce one-liner:

::SendMessage(GetDlgItem(IDC_RADIO1)->m_hWnd, BM_SETCHECK, BST_CHECKED, NULL);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top