Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Очередная трабла в MFC у мя. Помогите.  (Прочитано 15145 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ChaoticCube
ChaoticCube
Помогающий

ru
Offline Offline
Пол: Мужской
ChaoticCube


« : 08-01-2004 08:45 » 

VC7
Проблема странная. Опишу как смогу.

Итак - делаю PropertyListBox.
Следовательно есть элементы, которые создаются и уничтожаются по необходимости.
Странность такая - создаю CComboBox стилем CBS_DROPDOWNLIST. Работаю. Происходит CBN_KILLFOCUS. По нему уничтожаю комбик DestroyWindow() и удаляю элемент delete Combo.
После окончания работы OnKillFocus - появляются баги (выдает в atltrace.h)

Что занятно - другим стилем если комбик рисовать - багов нет.

Подскажите где копать?
Записан

Сила ночи, сила дня - одинакого фигня....
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #1 : 08-01-2004 10:15 » 

А зачем ты убиваешь Комбо бокс после потери фокуса???
Записан

А птичку нашу прошу не обижать!!!
ChaoticCube
ChaoticCube
Помогающий

ru
Offline 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
Помогающий

ru
Offline Offline
Пол: Мужской
ChaoticCube


« Ответ #4 : 14-01-2004 23:13 » 

Так - не могу, мне по любому при том устройстве компонента что есть надо делать delete.

Спасибо всем, кто ответил. Траблу уже обошел.

Кому интересно способ обхода - перегрузил класс комбика, сделав ему по WM_KILLFOCUS Destroy. А сам delete также делаю где раньше - то есть по сообщению листу свойств CBN_KILLFOCUS. Работает. Почему - не знаю, но очень интересно.

Что странно - раньше (когда трабла была) проверено - память лишняя не убивалась. DestroyWindow() для комбика ошибок не выдавал. Восле каждой записи ставил GetLastError() - тоже безошибочно. Короче, чушь какая-то.

Кстати, обращаюсь к Грому. Было бы неплохо хранить на сайте разработанные нашими программерами компоненты для MFC, C++Buider и т.д. Было бы легко и просто многое делать. Допустим лист всойств мой - пригодился бы многим, с какими-нить переделками. Также их можно было бы обсуждать и т.д. (как на codeguru.com) Вот такое пожелание.
Записан

Сила ночи, сила дня - одинакого фигня....
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #5 : 15-01-2004 03:34 » 

ChaoticCube, а не проще очищать память только от данных, а комбу делать невидимой?
Записан

Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #6 : 15-01-2004 09:07 » 

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

Насчет компонент - с удовольствием - можно начать прямо счас - присылай.
Записан

А птичку нашу прошу не обижать!!!
ChaoticCube
ChaoticCube
Помогающий

ru
Offline Offline
Пол: Мужской
ChaoticCube


« Ответ #7 : 16-01-2004 14:16 » 

Гром, Если б я знал куда слать. Поищу конечно, но может подскажешь?

Нашел - на club@shelek.com

Пришлю туда. Сегодня вечером.
Записан

Сила ночи, сила дня - одинакого фигня....
ChaoticCube
ChaoticCube
Помогающий

ru
Offline Offline
Пол: Мужской
ChaoticCube


« Ответ #8 : 16-01-2004 22:25 » 

Ушел компонент. Если можно - напиши мне ссылку куда выложешь.
Заранее спасибо.
Записан

Сила ночи, сила дня - одинакого фигня....
ChaoticCube
ChaoticCube
Помогающий

ru
Offline Offline
Пол: Мужской
ChaoticCube


« Ответ #9 : 21-01-2004 07:57 » 

Гром, компонент дошел? Или ты его не выложишь? Ответил бы что-нить.
Записан

Сила ночи, сила дня - одинакого фигня....
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #10 : 15-04-2006 18:18 » new

(комент)

1) имхо тема для удаления, но:
2) МЫСЛЯ : галерея сапопальных компонентов для MFC. У меня тоже имеется, что выложить - например контрол, похожий на набор чекбоксов (рисованный) и прочая.
3) Если галерея нужна - то дошёл ли присланный компонент? (или спросить у автора заново - наверняка баги ещё подправлены)
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines