Programmatische wählen Sie ein MFC-Optionsfeld
Frage
Wenn ich einen Dialog zu initialisieren, ich möchte einen der Radio-Buttons auf dem Formular auszuwählen. Ich sehe keinen Weg, um eine Regelgröße mit den Klassen-Assistenten zu verknüpfen, wie Sie es normalerweise tun mit CButtons, CComboBoxes, etc ...
Darüber hinaus ist es nicht wie eine CRadioButton Klasse selbst existiert.
Wie kann ich eine von mehreren Radiobuttons wählen?
Lösung
Optionsfelder und Kontrolltasten sind nur Schaltflächen. Verwenden Sie eine CButton
Steuerung und verwenden GetCheck
/ SetCheck
.
Andere Tipps
Verwenden Sie CWnd :: CheckRadioButton wählen Sie eine Taste in einer Gruppe zu setzen und CWnd :: GetCheckedRadioButton die ID der ausgewählten Taste abgerufen werden. Achten Sie darauf, diese Methoden auf dem Dialog Objekt aufzurufen, und keine der Radiobutton-Objekte.
Gehen auf, was mos sagte, die gearbeitet folgenden tat der Trick:
CButton* pButton = (CButton*)GetDlgItem(IDC_RADIOBUTTON);
pButton->SetCheck(true);
void CMyDlg::DoDataExchange(CDataExchange* pDX)
{
...
DDX_Radio(pDX, IDC_RADIO1, m_Radio);
...
}
, aber es ist das gleiche Wizard generiert
Sie können mit diesen Einzeiler:
::SendMessage(GetDlgItem(IDC_RADIO1)->m_hWnd, BM_SETCHECK, BST_CHECKED, NULL);