MFC отдельные группы радиоуправления - PullRequest
2 голосов
/ 11 июня 2009

Я добавил 8 переключателей в свой макет диалога в менеджере ресурсов, но у меня возникают проблемы с разделением их на 2 группы по 4 кнопки. Я попытался добавить управляющую переменную, но не вижу опции CButton, доступной в раскрывающемся меню мастера. Какой самый простой способ для достижения этой цели?

Ответы [ 2 ]

7 голосов
/ 11 июня 2009
  1. Убедитесь, что для первого элемента управления в каждой группе установлены атрибуты «Группа» и «Стоп табуляции».
  2. Убедитесь, что для элемента управления, следующего за последним переключателем в каждой группе, установлен атрибут «Группа».
  3. Убедитесь, что все идентификаторы переключателей в каждой группе являются последовательными целыми числами.
  4. Создать целочисленную переменную-член для каждой группы
  5. В методе DoDataExchange для диалогового окна добавьте оператор DDX_Radio для каждой группы, связывающий целочисленную переменную с первым идентификатором в группе.

Целочисленные переменные будут устанавливаться из переключателей всякий раз, когда вызывается UpdateData (true) (вызывается автоматически обработчиком OnOk () по умолчанию), а переключатели можно устанавливать из переменных путем вызова UpdateData (false) (происходит автоматически в обработке по умолчанию OnInitDialog)

0 голосов
/ 11 июня 2009

Эта проблема не проблема MFC, а проблема переключателя WIN32.

При создании групп порядок вкладок (порядок создания) имеет значение. Вы должны создать их в порядке первой группы, а затем второй группы. Для первого переключателя в каждой группе должен быть выбран стиль «группа».

Вы должны иметь возможность создавать переключатели в редакторе диалоговых окон Visual Studio и запускать тестовый диалог, и группы радио должны нормально работать в двух группах без какого-либо кода. Если нет, значит, вы сделали что-то не так.

Я нашел это с помощью Google, который может вам помочь.

...