Главная arrow Программирование arrow PC arrow Microsoft Visual C++: как группировать радиокнопки Monday, March 20 2023  
ГлавнаяКонтактыАдминистрированиеПрограммированиеСсылки
UK-flag-ico.png English Version
GERMAN-flag-ico.png Die deutsche Version
map.gif карта сайта
нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Поделиться:

Microsoft Visual C++: как группировать радиокнопки Версия для печати
Написал microsin   
10.04.2008

Предположим, на форме нужно разместить несколько независимых групп радиокнопок. Группируются радиокнопки как обычно - с помощью контрола Group Box. Но убогий инструмент визуального редактирования Visual Studio не позволяет включить группирование радиокнопок, даже если Вы их добросовестно разместили на форме, как полагается (каждая группа радиокнопок внутри своего Group Box).

radiogroup01.jpg 

После такого размещения логично ожидать, что группа Radio1/Radio2 будет работать отдельно от группы Radio3/Radio4, но не тут то было - после запуска приложение радиокнопки Radio1, Radio2, Radio3 и Radio4 иногда работают как одна группа. Я долго не мог понять, почему. Оказалось это происходит, если Вы сначала добавили 2 контрола Group Box, а потом 4 контрола Radio Button, даже не подозревая о том, что порядок добавления контролов в форму имеет значение - надо было сначала добавить первый Group Box, потом в него радиокнопки Radio1 и Radio2, потом добавить второй Group Box, и в него добавить радиокнопки Radio3 и Radio4.

Чтобы решить проблему, нужно сделать 2 вещи:

1. Установить в IDE Visual Studio у каждого Group Box, куда помещены радиокнопки, свойство Group в True (по умолчанию оно False).

2. Любым текстовым редактором вручную отредактировать файл ресурсов *.rc. Если Ваш проет называется testradio, то файл ресурсов будет называться testradio.rc. Когда его откроете, секция описания контролов на форме будет такого вида:
radiogroup02.jpg

Нужно вторую строк GROUPBOX переставить перед CONTROL Radio3, это включит разделение радиокнопок Radio1, Radio2, Radio3 и Radio4 на две группы:
radiogroup03.jpg

После такой правки группа Radio1/Radio2 будет работать отдельно от группы Radio3/Radio4.

Другой способ решения проблемы - все контролы удалить и разместить их заново в требуемой последовательности (не забываем установить у контролов Group Box свойство Group в True). Причем важен именно порядок добавления контролов, а не место размещения радиокнопок - их можно даже поместить не в область Group Box.

Последнее обновление ( 10.04.2008 )
 

Комментарии  

  1. #1 kselax
    2014-03-1809:39:58 Спосибо помог, молодец, все понятно расписал!

Добавить комментарий

:D:lol::-);-)8):-|:-*:oops::sad::cry::o:-?:-x:eek::zzz:P:roll::sigh:

Защитный код
Обновить

< Пред.   След. >

Top of Page
 
microsin © 2023