Поиск:

Ответ в темуСоздание новой темы Создание опроса
> диалоги в CTabCtrl и главная форма 
:(
    Опции темы
semerson
Дата 12.2.2007, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 8.9.2006

Репутация: нет
Всего: нет



На главной форме расположен CTabCtrl и ряд чекбоксов. На одной из закладок tabctrl'а лежит CListCtrl. При дабл-клике на одном из полей листконтрола нужно получить состояние чекбоксов которые относятся к главной форме. Как это сделать?
PM MAIL   Вверх
vinter
Дата 12.2.2007, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 4
Всего: 56



заведи bool массив, в котором будут находиться состояния checkbox, и при необходимости используй его 


--------------------
Мой блог
PM MAIL WWW   Вверх
semerson
Дата 12.2.2007, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 8.9.2006

Репутация: нет
Всего: нет



глобальный массив через extern?
PM MAIL   Вверх
vinter
Дата 12.2.2007, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 4
Всего: 56



а это уж полет твоей фантазииsmile можешь статический элемент класса сделать(предпочтительнее чем глобальное обьявление), можешь еще ф-ию- член возвращающую указатель на массив.. вообщем тут сам думай smile 


--------------------
Мой блог
PM MAIL WWW   Вверх
Earnest
Дата 13.2.2007, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Не надо заводить никакой массив: чем локальнее тем лучше.
Тебе всего-то надо спросить состояние check-боксов у парента.
Если лист-контрол является чайлдом tab-контрола, а тот, в свою очередь - формы - значит, вызови GetParent дважды:
Код

static_cast<CMyMainForm*>(pListCtrl->GetParent()->GetParent())->IsDlgButtonChecked (IDcheck);

Если вложенность не такая, скорректируй число GetParent().
Можно даже функцию нарисовать, чтобы добраться до формы от произвольного чайлда:
Код


CMyMainForm* GetParentForm (CWnd* pCtrl)
{
   for (CWnd* pPar = pCtrl->GetParent(); pPar != 0; pPar = pPar->GetParent())
  {
       CMyMainForm* pForm = dynamic_cast<CMyMainForm*>(pPar);     
       if (pForm)   return pForm;
   }
   return 0;
}


Если RTTI не включен, используй DYNAMIC_DOWNCAST() вместо dynamic_cast<>.



--------------------
...
PM   Вверх
semerson
Дата 13.2.2007, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 8.9.2006

Репутация: нет
Всего: нет



Это хорошо, но если вместо чекбоксов на главной форме есть CSliderCtrl и надо изменить положение бегунка, как поступить в этом случае?
PM MAIL   Вверх
Earnest
Дата 14.2.2007, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Точно так же: Добраться до главной формы и до ее контролов. Это если к моему посту вопрос, конечно.


--------------------
...
PM   Вверх
semerson
Дата 17.2.2007, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 8.9.2006

Репутация: нет
Всего: нет



Спасибо разобрался smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0760 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.