imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 23.05.2005, 16:58     # 1
lokiSE
Newbie
 
Регистрация: 13.10.2004
Сообщения: 28

lokiSE Путь к славе только начался
Проблема с RadioButton

Начал писать GUI евый интерфейс, и столкнулся с написанием диалога настроек, и тут такое дело - во первых - как их сгруппированить - должно быть 16 групп по 3 штуки, во вторых как брать их статус (включена, не включена ) БЕЗ управляющих переменных. Я делал так -
{
int tmp=GetCheckRadioButton(IDC_FIRST,IDC_LAST);
fwrite(&tmp,4,1,filename);
}
Таким макаром брал 16 раз и вот так пробовал ставить
{
fread(tmp,4,1,filename);
CheckRadioButton(IDC_FIRST,IDC_LAST,tmp);
}
Фиг- работает только на двух из 16 (процедура чтения и записи для всех одинаковая). От чего зависит так и не понял, мудрые люди подскажите плиз. А то создавать управляющие переменные для 16*3 это для меня слишком.
lokiSE вне форума  
Старый 24.05.2005, 09:35     # 2
PSyton
Junior Member
 
Аватар для PSyton
 
Регистрация: 19.04.2002
Адрес: Дом
Пол: Male
Сообщения: 187

PSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форуме
Можно завести переменную типа long long (int64) - это будет 64 бита триггеров. в ней и хранить состояния всех батонов. ее и записывать и считывать в/из файла
После, завести один обработчик OnClick для все радиобатонов.
В нем узнавать ID контрола для которого вызвано событие и в зависимости от события менять соотв бит в нашей мега переменной.
в обработчике код примерно такой, может что и попутал, но концепция думаю ясна.
Код:
int64 bitmask=((int64(0x1))<<(curid-IDC_FIRST+1));
if (((CRadioButton *)GetDlgItem(curid))->Checked())
{
  Flags|=bitmask;
}
else
{
  Flags~=bitmask;
}
__________________
Дураки не динозавры - они не вымрут...
PSyton вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 17:38.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.