Вопрос

Когда я инициализирую диалоговое окно, я хотел бы выбрать один из переключателей в форме.Я не вижу способа связать управляющую переменную с помощью мастера классов, как вы обычно делаете с 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);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top