Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Повторное использование диалога 
:(
    Опции темы
TerminalSoul
Дата 20.12.2009, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вобщем создал класс диалога, нарисовал его в редакторе ресурсов, написал все обработчики и столкнулся с проблемой:
Этот диалог было бы круто использовать два раза, но в одном случае вызвать его с помощью DoModal(), а во втором зааттачить к вкладке. Но в редакторе ресурсов есть у окна свойство - контекстное меню, дочерний и смешанный. Если ставлю контекстное меню DoModal пашет, а вот когда он аттачится к вкладке , он к ней не присоединяется, а просто выскакивает как обычное модальное окно. Если ставлю дочерний - то с вкладкой всё норм, но при вызове DoModal() окна не видно как проблему решить?
Вот кода присоединения к вкладке диалога:
Код

    cur_tab->Create(id,(CWnd*)&Tabs);// диалог
    CRect rect;
    Tabs.GetWindowRect(&rect);//Tabs объект вкладки
    Tabs.ScreenToClient(&rect);
    Tabs.AdjustRect(FALSE,&rect);
    cur_tab->MoveWindow(&rect);
    cur_tab->ShowWindow(SW_SHOWNORMAL);
    cur_tab->UpdateWindow();

PM MAIL   Вверх
TerminalSoul
Дата 21.12.2009, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Забавн, сам задаю вопрос - сам отвечаю)
Вобщем, самый пока адекватный способ сделать так: скопировать в редакторе ресурсов диалоговое окно, и пусть одно будет дочернее, а другое контекстное. После чего, чтобы к нему не писать ещё один класс, просто подменять m_nIDHelp(ИД диалога), в зависимости от нужды.
В ещё проще, если юзать Create, там этот id задать можно напрямую, в примере кода выше так и делается, просто я долго тупил.

Это сообщение отредактировал(а) TerminalSoul - 21.12.2009, 15:01
PM MAIL   Вверх
Earnest
Дата 21.12.2009, 20:11 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Copy-Paste - это метод индийских программистов. А наши люди в булочную на такси не ездят.
Наши люди:
1) Прочитают шаблон диалога из ресурсов (DLGTEMPLATE) и поставят ему нужный стиль (чайлд или попап). И создадут его через CreateIndirect. И не надо бога ради, сводить меня с ума "смешанным" стилем или "контекстным меню"
2) Если нашим людям лень ковыряться в шаблоне, то они просто сделают диалог всегда дочерним, а в модальном варианте вложат его в другой модальный диалог, в котором ничего не будет, кроме этого чайлда.

Представь себе на минуту, что диалог нужно поменять, а у тебя 2 копии. А если таких диалогов несколько? Жуть!


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


 




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


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

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