Поиск:

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


Материалист
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 7.10.2003
Где: г. Всеволожск

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



Любитель, На самом деле можно найти пример когда кто-нибудь бы пострадал от создания окон в конструкторах. Объект окна создается, но прежде чем создать окно ждет каких-либо данных.
А вот от того как сделано вряд ли кто-нибудь сильно страдает. 


--------------------
忍者

user posted image
PM MAIL   Вверх
Earnest
Дата 22.7.2006, 08:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Любитель @  22.7.2006,  01:47 Найти цитируемый пост)
Я имею в виду, что это должен делать класс CWnd => и все наследованные от него

Так он это и делает (деструктор CWnd разрушает окно). Но ведь к этому моменту твой класс уже разрушен - сообщение WM_DESTROY посылается, но твоего объекта уже нет, и приходит оно базовому классу, о чем и предупреждается. Это уже С++ - из конструктора-деструктора нельзя вызывать виртуальные функции. Т.е. можно, но получишь не то, что ожидаешь...
Что касается класса fstreem - это совсем другое дело. Ты часто создаешь производные от него классы? Или все таки пользуешься именно fstream? 

Цитата(Любитель @  22.7.2006,  01:47 Найти цитируемый пост)
Проектируя библиотеку ГУИ надо было позаблтиться о единстве объекта и физического окошка.  

Физическое окошко находится вне компетенции MFC. MFC не является шедевром дизайна (вспомните сколько ей лет), она всего лишь тонкая оболочка над WinAPI, чем и ценна, с моей точки зрения.  


--------------------
...
PM   Вверх
Dray
Дата 22.7.2006, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Материалист
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 7.10.2003
Где: г. Всеволожск

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



Цитата(Earnest @  22.7.2006,  08:07 Найти цитируемый пост)
она всего лишь тонкая оболочка над WinAPI, чем и ценна

Вот, да это основное великолепие. Именно этого не могут понять люди переходящие с VCL, за сложностью не видят гибкости. 


--------------------
忍者

user posted image
PM MAIL   Вверх
Любитель
Дата 23.7.2006, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

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



Цитата(Dray @  22.7.2006,  01:16 Найти цитируемый пост)
юбитель, На самом деле можно найти пример когда кто-нибудь бы пострадал от создания окон в конструкторах. Объект окна создается, но прежде чем создать окно ждет каких-либо данных.А вот от того как сделано вряд ли кто-нибудь сильно страдает. 

Попробуй найти! В конце концов можно создавать объекты на хипе.

Цитата(Earnest @  22.7.2006,  08:07 Найти цитируемый пост)
Физическое окошко находится вне компетенции MFC. MFC не является шедевром дизайна (вспомните сколько ей лет), она всего лишь тонкая оболочка над WinAPI, чем и ценна, с моей точки зрения.  

Согласен. Из-за привязанности к WinAPI в MFC получается на мой взгляд слабая привязанность к нормальной объектно-ориентированной модели. Это не есть плохо, но есть неприятно...
 


--------------------
PM MAIL ICQ Skype   Вверх
lemax
Дата 2.1.2009, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



НАПОМИНАНИЕ.
В ДИСТРУКТОРЕ ЗАПРЕЩЕН КОД КОТОРЫЙ МОЖЕТ СОЗДАВАТЬ ИСКЛЮЧЕНИЯ

Почему:
При исключении начинает высвобождаться память. А так как память объекта на который указат this , еще не высвобождено, то повторно будет вызываться диструктор (*this).
Может зациклит не по детски.

В конструкторе тоже не стоит использовать код, бросающий исключения
PM MAIL   Вверх
Earnest
Дата 6.1.2009, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



lemax, это в том смысле, что ты еще в июле 2006 впал в анабиоз, и вот только очнулся???
Только дата поста может извинить его ... гм... глубокомыслие smile 


--------------------
...
PM   Вверх
lemax
Дата 8.1.2009, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Earnest @ 6.1.2009,  17:57)
lemax, это в том смысле, что ты еще в июле 2006 впал в анабиоз, и вот только очнулся???
Только дата поста может извинить его ... гм... глубокомыслие smile

А при чем здесь дато поста? Когда я пытаюсь найти решение своей проблемы, то мне по барабану на дату, когда ее решили.

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


 




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


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

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