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

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

Восстановить пароль Регистрация
 
SwanSONG
2 / 2 / 0
Регистрация: 30.01.2013
Сообщений: 36
11.11.2013, 19:38     Экономия ресурсов при использовании CPen и CBrush #1
Здравствуйте, коллеги!
В моем проекте по циклу крутится вывод некоторых геометрических фигур. Их много (больше 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++ При использовании оператора GOTO зацикливается программа при введении букв.
Ошибка при использовании STL C++
C++ Ошибки при использовании конструкции if-else.
Ошибки при использовании stringstream C++
При использовании getline ввод при Enter заканчивается только после пробела C++
C++ Ошибка при использовании %
C++ Ошибка при использовании reverse_iterator
C++ Смещение в тексте при использовании \n

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

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

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