![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 18.03.2009
Сообщений: 89
|
![]()
У меня есть приложение с использованием MFC. Там есть главный диалог, на котором находится список с некоторыми элементами. Можно открыть другой диалог для редактирования параметров выделенного элемента списка.
Так вот, наблюдается такая картина. Сначала этот диалог открывается довольно шустро. Но по мере работы, когда он открывается по 20, 30, 40 и больше раз, с каждым разом открытие происходит на долю секунды дольше. Если долго работать, тормоза становятся очень явными. Кто-нибудь знает, что это может быть? Код там вроде обычный, что-то вроде: CDialogProperties dlg; dlg.DoModal(); В самом диалоге CDialogProperties на первый взгляд тоже ничего криминального нет. |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 18.10.2008
Сообщений: 1,409
|
![]()
Так может кода покажите или проектик дайте посмотреть... Может кто и поможет
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 18.03.2009
Сообщений: 89
|
![]()
Да там проект здоровый, весь выкладывать не хочу. А код... даже не знаю, что там может быть интересного. Ну по теме может быть актуально:
При двойном клике по элементу списка вызывается: Код:
Код:
|
![]() |
![]() |
![]() |
#4 | |
Участник клуба
Регистрация: 18.10.2008
Сообщений: 1,409
|
![]() Цитата:
возможно где-то идет утечка ![]() |
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 18.03.2009
Сообщений: 89
|
![]()
Элементы объявлены статически как члены класса CDialogCardProperties. В OnInitDialog им делается Create(...). По идее, при разрушении окна все должно само освобождаться.
|
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 18.10.2008
Сообщений: 1,409
|
![]()
если честно, то мыслей нет
![]() а что происходит тут m_Card->Assign(card); ? |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 18.03.2009
Сообщений: 89
|
![]()
Вот у меня тоже мыслей нет
![]() В m_Card->Assign(card) тупо копирование значений членов одного объекта в другой. Типо оператора присваивания. К тому же подобные конструкции не только здесь используются и вроде проблем нет. Главное, если даже где-то есть утечки памяти, это не должно так критично влиять на работу. Памяти в системе хватает, а вот диалог тормозит... Скорее всего что-то другое, виндузовское. |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 18.10.2009
Сообщений: 18
|
![]()
я не сильно шарю ^_^ но походу оно проверяет списки открытий придедущих окон смотрит нет ли совпадений а потом открывает новое
^_^ както так ![]() ![]() |
![]() |
![]() |
![]() |
#9 |
Участник клуба
Регистрация: 18.10.2008
Сообщений: 1,409
|
![]()
тормозит только этот диалог или другие тоже (если они есть)?
строки кода коментировать пробовал? эффект тот же? |
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 18.03.2009
Сообщений: 89
|
![]()
Про другие сложно сказать, они менее навороченные и реже используются. Так на вскидку не замечал.
Строки комментировать не пробовал, но, видимо, придется. Проблема в том, что там много органов и если их не создавать или еще что-то не делать, то все падать начнет. Очень не хотелось половину кода комментировать. Еще можно попробовать таймеры навставлять, поймать где тормозит... |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка из-за открытия диалога | Marisha* | Общие вопросы Delphi | 8 | 12.07.2009 16:15 |
Зависание при показе Диалога | nusik | Общие вопросы C/C++ | 11 | 02.07.2009 08:20 |
Создание диалога из длл | Oburec | Общие вопросы C/C++ | 0 | 27.06.2009 15:29 |
Фон диалога - картинка. MFC + dll | ACE Valery | Visual C++ | 2 | 23.06.2009 23:22 |
Модуль диалога выбора папки на WinAPI | Veress | Помощь студентам | 0 | 13.06.2009 23:31 |