Программный выбор переключателя MFC
Вопрос
Когда я инициализирую диалоговое окно, я хотел бы выбрать один из переключателей в форме.Я не вижу способа связать управляющую переменную с помощью мастера классов, как вы обычно делаете с CButtons, CComboBoxes и т.д...
Кроме того, ему не нравится, что класс CRadioButton вообще существует.
Как я могу выбрать один из нескольких переключателей?
Решение
Переключатели и кнопки проверки - это просто кнопки.Используйте CButton
контроль и использование GetCheck
/SetCheck
.
Другие советы
Использование CWnd:: Кнопка проверки радиосвязи чтобы установить, выберите одну кнопку в группе и CWnd::getcheckeddradiobutton чтобы получить идентификатор выбранной кнопки.Обязательно вызывайте эти методы для вашего объекта dialog, а не для любого из объектов radio button.
Исходя из того, что сказал мос, сработало следующее:
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);