Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
SwanSONG
2 / 2 / 0
Регистрация: 30.01.2013
Сообщений: 36
#1

Экономия ресурсов при использовании CPen и CBrush - C++

11.11.2013, 19:38. Просмотров 196. Ответов 0
Метки нет (Все метки)

Здравствуйте, коллеги!
В моем проекте по циклу крутится вывод некоторых геометрических фигур. Их много (больше 3000 экземпляров нескольких классов). Их надо выводить разными цветами с разной же заливкой.
Как идеологически правильно сделать:
1.
C++
1
2
CPen xPen,*pOldPen=xdc->SelectObject(&xPen);
CBrush xBrush, *pOldBrush=xdc->SelectObject(&xBrush);
....
C++
1
2
CBrush bPlanet(RGB(vR,vG,vB));
CPen pOrbit(PS_DASH,1,cPlanetOrbit);
...
C++
1
2
3
xdc->SelectObject(pPlanet);
xdc->SelectObject(bPlanet);
xdc->Ellipse(PosPlanetX-vRadius2,PosPlanetY-vRadius2,PosPlanetX+vRadius2,PosPlanetY+vRadius2);
...
C++
1
2
xdc->SelectObject(pOldPen);
xdc->SelectObject(pOldBrush);
2. или через new\delete:
C++
1
2
CPen xPen,*pOldPen=xdc->SelectObject(&xPen);
CBrush xBrush, *pOldBrush=xdc->SelectObject(&xBrush);
...
C++
1
2
CPen *CP=new CPen(PS_DASH,1,cPlanetOrbit);
CBrush *CB=new CBrush(cPlanetOrbit);
...
C++
1
2
3
xdc->SelectObject(CP);
xdc->SelectObject(CB);
xdc->Ellipse(PosPlanetX-vRadius2,PosPlanetY-vRadius2,PosPlanetX+vRadius2,PosPlanetY+vRadius2);
...
C++
1
2
xdc->SelectObject(pOldPen);
xdc->SelectObject(pOldBrush);
...
C++
1
delete CP,CB;
Т.е. как избежать в такой ситуации утечки ресурсов?
Спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2013, 19:38     Экономия ресурсов при использовании CPen и CBrush
Посмотрите здесь:

C++ Ошибка при использовании delete
Ошибка при использовании STL C++
C++ Ошибки при использовании конструкции if-else.
Ошибки при использовании stringstream C++
Ошибка при использовании вектора C++
Существует ли ограничение при использовании new? C++
C++ Мини боевка при использовании do while
Экономия памяти C++
C++ Ошибка при использовании reverse_iterator
C++ Экономия по времени
Исключение при использовании алгоритма C++
Ошибка при использовании _findfirst() C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 01:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru