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

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

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

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

11.11.2013, 19:38. Просмотров 207. Ответов 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++):

Баг при использовании класса string при записи в бинарный файл - C++
При записи в бинарный файл пользовательского класса, всё отлично отрабатывает, но, если в классе использовался класс string, то в конце...

При использовании оператора GOTO зацикливается программа при введении букв. - C++
Приветствую всех новых знакомых в этом храме программирования. Я новичек, пытаюсь программировать в С++ недавно. У меня возник вопрос...

При использовании getline ввод при Enter заканчивается только после пробела - C++
int main() { string slovo; double n; while(slovo != "пока" ) { getline (cin,slovo,' '); if (slovo ==...

Экономия памяти - C++
Скажите, будет ли второй вариант кода занимать меньше памяти? 1ый вариант: float a; f(a); 2ый вариант: #define a 5.33 ...

Экономия по времени - C++
Приветствую всех! Как сделать данную программу максимально быстрой, для прохождения теста в олимпиадном программировании. ...

Ошибка при использовании % - C++
(условие задачи, код и ошибки при коомпиляции на скрине) Здравствуйте, задача простая, как и ее решение, на фортране бы уже пять раз...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.11.2013, 19:38
Привет! Вот еще темы с ответами:

Ошибка при использовании gets() - C++
Не могу понять, почему при второй итерации цикла программа выдает ошибку и закрывается при запросе фамилии. #include "stdafx.h" ...

Ошибка при использовании reverse_iterator - C++
std::array<int, 7> m = { 1, 2, 3, 4, 5, 6, 7 }; vector<int> v(m.begin(), m.end()); vector<int>::iterator pos = find(v.begin(),...

Ошибка при использовании вектора - C++
Пытаюсь проанализировать текстовый файл и посчитать кол-во каждого символа. Текст на английском. Вот код: class Raspredelenie{ ...

Ошибка при использовании delete - C++
И снова здравствуйте! Пишу раз третий.Я уже готов убицца ап сцену изза этого delete.Я не понимаю что не так делаю: class CMenu { ...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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