ChaoticCube
ChaoticCube
Помогающий
Offline
Пол:
ChaoticCube
|
|
« : 08-01-2004 08:45 » |
|
VC7 Проблема странная. Опишу как смогу.
Итак - делаю PropertyListBox. Следовательно есть элементы, которые создаются и уничтожаются по необходимости. Странность такая - создаю CComboBox стилем CBS_DROPDOWNLIST. Работаю. Происходит CBN_KILLFOCUS. По нему уничтожаю комбик DestroyWindow() и удаляю элемент delete Combo. После окончания работы OnKillFocus - появляются баги (выдает в atltrace.h)
Что занятно - другим стилем если комбик рисовать - багов нет.
Подскажите где копать?
|
|
|
Записан
|
Сила ночи, сила дня - одинакого фигня....
|
|
|
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии
Offline
Пол:
Бодрый птах
|
|
« Ответ #1 : 08-01-2004 10:15 » |
|
А зачем ты убиваешь Комбо бокс после потери фокуса???
|
|
|
Записан
|
А птичку нашу прошу не обижать!!!
|
|
|
ChaoticCube
ChaoticCube
Помогающий
Offline
Пол:
ChaoticCube
|
|
« Ответ #2 : 08-01-2004 10:30 » |
|
Ну тема такая - класс является листом свойств. То есть 2 колонки в лист боксе (слева - название свойства (допустим Имя), справа - его значение (допустим - Объект1))
Каждый раз кода наглый юзер нажимает на свойство справа должно появляться нечто - иногда комбик, иногда едит, иногда кнопка. Назовем это итемом.
Когда пользователь покидает итем и переходит например на другой итем, предыдущий надо убить и создать новый, чо бы обрабатывать уже новые мессаги и т.д.
Миллион итемов хранить - куча IDC надо, памяти, да и быстродествие жакроется нопой. Короче по другому ни как.
См. подобные же листы свойст в Visual Studio, C++Builder и т.д... Там так же - зашел в свойство - итем появился - вышел - кронты итему...
|
|
|
Записан
|
Сила ночи, сила дня - одинакого фигня....
|
|
|
Serega
Гость
|
|
« Ответ #3 : 12-01-2004 04:40 » |
|
не надо delete, посылай WM_DESTROY, контрол сам позаботится о своей памяти
|
|
|
Записан
|
|
|
|
ChaoticCube
ChaoticCube
Помогающий
Offline
Пол:
ChaoticCube
|
|
« Ответ #4 : 14-01-2004 23:13 » |
|
Так - не могу, мне по любому при том устройстве компонента что есть надо делать delete.
Спасибо всем, кто ответил. Траблу уже обошел.
Кому интересно способ обхода - перегрузил класс комбика, сделав ему по WM_KILLFOCUS Destroy. А сам delete также делаю где раньше - то есть по сообщению листу свойств CBN_KILLFOCUS. Работает. Почему - не знаю, но очень интересно.
Что странно - раньше (когда трабла была) проверено - память лишняя не убивалась. DestroyWindow() для комбика ошибок не выдавал. Восле каждой записи ставил GetLastError() - тоже безошибочно. Короче, чушь какая-то.
Кстати, обращаюсь к Грому. Было бы неплохо хранить на сайте разработанные нашими программерами компоненты для MFC, C++Buider и т.д. Было бы легко и просто многое делать. Допустим лист всойств мой - пригодился бы многим, с какими-нить переделками. Также их можно было бы обсуждать и т.д. (как на codeguru.com) Вот такое пожелание.
|
|
|
Записан
|
Сила ночи, сила дня - одинакого фигня....
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #5 : 15-01-2004 03:34 » |
|
ChaoticCube, а не проще очищать память только от данных, а комбу делать невидимой?
|
|
|
Записан
|
|
|
|
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии
Offline
Пол:
Бодрый птах
|
|
« Ответ #6 : 15-01-2004 09:07 » |
|
ChaoticCube, что то странное, но я пока не понял как код устроен , а без этого смотреть и говорить о способах трудно. Одно точно Алексей1153, хоршо сказал, создай все типы появляющихся итемов, в одном экземпляре и делай их невидимыми, а когда надо заполняй нужными данными и делай видимыми, и т.д. Тогда парится с памятью не придется - это раз, да и скорость сэкономишь - создание и удаление объекта долбше чем делать видимо не видимое свойство.
Насчет компонент - с удовольствием - можно начать прямо счас - присылай.
|
|
|
Записан
|
А птичку нашу прошу не обижать!!!
|
|
|
ChaoticCube
ChaoticCube
Помогающий
Offline
Пол:
ChaoticCube
|
|
« Ответ #7 : 16-01-2004 14:16 » |
|
Гром, Если б я знал куда слать. Поищу конечно, но может подскажешь? Нашел - на club@shelek.comПришлю туда. Сегодня вечером.
|
|
|
Записан
|
Сила ночи, сила дня - одинакого фигня....
|
|
|
ChaoticCube
ChaoticCube
Помогающий
Offline
Пол:
ChaoticCube
|
|
« Ответ #8 : 16-01-2004 22:25 » |
|
Ушел компонент. Если можно - напиши мне ссылку куда выложешь. Заранее спасибо.
|
|
|
Записан
|
Сила ночи, сила дня - одинакого фигня....
|
|
|
ChaoticCube
ChaoticCube
Помогающий
Offline
Пол:
ChaoticCube
|
|
« Ответ #9 : 21-01-2004 07:57 » |
|
Гром, компонент дошел? Или ты его не выложишь? Ответил бы что-нить.
|
|
|
Записан
|
Сила ночи, сила дня - одинакого фигня....
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #10 : 15-04-2006 18:18 » |
|
(комент)
1) имхо тема для удаления, но: 2) МЫСЛЯ : галерея сапопальных компонентов для MFC. У меня тоже имеется, что выложить - например контрол, похожий на набор чекбоксов (рисованный) и прочая. 3) Если галерея нужна - то дошёл ли присланный компонент? (или спросить у автора заново - наверняка баги ещё подправлены)
|
|
|
Записан
|
|
|
|
|