Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Простая прога в VC++ и её глюки


Автор: SmileTT 22.4.2010, 15:59
Если кому не лень, посмотрите плз на мою прогу. Суть проблемы: есть простенькая, криво написанная (я создал over 9000 переменных, может быть дело и в этом  ) прога, в которой с круговой диаграммой делаются простые вещи - меняется цвет секторов по клику и размер секторов (и легенда рядом). Проблема в том, что все созданные функции работают с первого раза, однако при дальнейших действиях диаграмма начинает жутко глюкать, исчезают цвета, окно вытягивается итп. Кому не лень помогите плиз =)

Автор: Earnest 22.4.2010, 18:59
Мне - лень. И вообще, это верх наглости, по моему - сунуть под нос кучу дерьма (по твоему собственному мнению) и попросить в нем покопаться.
Но судя по описанным симптомам похоже на то, что интенсивно пожираются и не освобождаются GDI ресурсы. Обрати на это внимания.
Не надо разрешать себе криво писать даже простенькие программы, это входит в привычку.

Автор: viktorrr 25.4.2010, 10:29
Доброго времени суток.

Для начала позвольте заметить что Earnest очень даже прав. 
Присоединяюсь к его словам, потому что Вы написали код, а разобраться в нем не потрудились.

Мне тоже было лень, но мимолётная скука взяла верх - и я потрудился разобраться.

Для справки: 1) правка разметки кода (удобочитаемость)  -- 10 минут.
                      2) разбор кода и локализация ошибки (с ориентиром на подсказку от Earnest)
                                   --  5 минут.
                      3) чтение MSDN  -- 3 минуты
                      4) правка и проверка кода  --  еще 7-10 минут
ИТОГО  - кружечка кофе и хорошая музыка на онлайн рок радио  и вопрос решен. smile 

Очень жаль что УДОВОЛЬСТВИЕ от факта решенного Вашего вопроса досталось НЕ ВАМ  smile 

Действительно 
Цитата
 интенсивно пожираются и не освобождаются GDI ресурсы 


В часности если Вы делаете CreateSolidBrush() + SelectObject() или с другими GDI ресурсами аналогично,
 то будьте добры делать обратное    SelectObject(hdc, hOLD_BRUSH) + DeleteObject(hBrush1);

Прилагается цитата из MSDN 
Цитата

When you no longer need the font, call the DeleteObject function to delete it. 


Исправленный .cpp файл тоже прилагается ниже

Добавлено через 2 минуты и 34 секунды
Вот и файл .срр

Добавлено через 4 минуты и 20 секунд
to moderators
  извините если криво пишу на форуме, но я пока что только учусь  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)