PDA

Просмотр полной версии : Проблема с RadioButton


lokiSE
23.05.2005, 16:58
Начал писать 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 это для меня слишком.

PSyton
24.05.2005, 09:35
Можно завести переменную типа long long (int64) - это будет 64 бита триггеров. в ней и хранить состояния всех батонов. ее и записывать и считывать в/из файла
После, завести один обработчик OnClick для все радиобатонов.
В нем узнавать ID контрола для которого вызвано событие и в зависимости от события менять соотв бит в нашей мега переменной.
в обработчике код примерно такой, может что и попутал, но концепция думаю ясна.

int64 bitmask=((int64(0x1))<<(curid-IDC_FIRST+1));
if (((CRadioButton *)GetDlgItem(curid))->Checked())
{
Flags|=bitmask;
}
else
{
Flags~=bitmask;
}