| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > Повторное использование диалога |
| Автор: TerminalSoul 20.12.2009, 16:08 | ||
| Вобщем создал класс диалога, нарисовал его в редакторе ресурсов, написал все обработчики и столкнулся с проблемой: Этот диалог было бы круто использовать два раза, но в одном случае вызвать его с помощью DoModal(), а во втором зааттачить к вкладке. Но в редакторе ресурсов есть у окна свойство - контекстное меню, дочерний и смешанный. Если ставлю контекстное меню DoModal пашет, а вот когда он аттачится к вкладке , он к ней не присоединяется, а просто выскакивает как обычное модальное окно. Если ставлю дочерний - то с вкладкой всё норм, но при вызове DoModal() окна не видно как проблему решить? Вот кода присоединения к вкладке диалога:
|
| Автор: TerminalSoul 21.12.2009, 14:54 |
| Забавн, сам задаю вопрос - сам отвечаю) Вобщем, самый пока адекватный способ сделать так: скопировать в редакторе ресурсов диалоговое окно, и пусть одно будет дочернее, а другое контекстное. После чего, чтобы к нему не писать ещё один класс, просто подменять m_nIDHelp(ИД диалога), в зависимости от нужды. В ещё проще, если юзать Create, там этот id задать можно напрямую, в примере кода выше так и делается, просто я долго тупил. |
| Автор: Earnest 21.12.2009, 20:11 |
| Copy-Paste - это метод индийских программистов. А наши люди в булочную на такси не ездят. Наши люди: 1) Прочитают шаблон диалога из ресурсов (DLGTEMPLATE) и поставят ему нужный стиль (чайлд или попап). И создадут его через CreateIndirect. И не надо бога ради, сводить меня с ума "смешанным" стилем или "контекстным меню" 2) Если нашим людям лень ковыряться в шаблоне, то они просто сделают диалог всегда дочерним, а в модальном варианте вложат его в другой модальный диалог, в котором ничего не будет, кроме этого чайлда. Представь себе на минуту, что диалог нужно поменять, а у тебя 2 копии. А если таких диалогов несколько? Жуть! |