Форум: "WinAPI";
Текущий архив: 2007.10.14;
Скачать: [xml.tar.bz2];
Вниз"Правильность" Найти похожие ветки
← →
Ricks © (2007-04-15 21:00) [0]Здравствуйте!
Вопрос знатокам:
есть ли принципиальная разница (вернее какая разница) вот в этих двух "программах":
B:=CreateSolidBrush( COLORREF );
O:=SelectObject(DC, B);
FillRect(DC, L, B);
SelectObject(DC, O);
DeleteObject(B);
и
B:=CreateSolidBrush( COLORREF );
FillRect(DC, L, B);
DeleteObject(B);
Во втором случае увеличивается кол-во GDI объектов.
Нужно ли обязательно мучатся с выбором кисти в HDC?
← →
Ricks © (2007-04-15 21:03) [1]Даже вернее так:
B:=CreateSolidBrush( COLORREF );
O:=SelectObject(DC, B);
FillRect(DC, L, B);
DeleteObject(SelectObject(DC, O));
DeleteObject(B);
Вот тогда GDI объекты, вернее их кол-во почти не увеличивается.
С другой стороны увеличение их числа происходит только один раз (если еще и еще раз вызывать процедуру — кол-во остается таким же)
← →
MBo © (2007-04-16 05:59) [2]микрософт говорит, что нужно восстанавливать ранее выбранные в контексте объекты - так почему бы этого не делать, тем более что усилий на это нужно совсем немного.
← →
homm © (2007-04-16 07:12) [3]> Во втором случае увеличивается кол-во GDI объектов.
> Нужно ли обязательно мучатся с выбором кисти в HDC?
Уверен? Странно, ты же и так предаешь кисть в параметрах, зачем же ее выбирать дополнительно.
← →
MBo © (2007-04-16 07:21) [4]This function returns the previously selected object of the specified type.
An application should always replace a new object with the original, default object after it has finished drawing with the new object.
← →
Ricks © (2007-04-16 18:24) [5]
> усилий на это нужно совсем немного.
Только время отнимает (проверено)
> homm ©
Можно писать
FillRect(DC, L, 0);
получится тоже самое.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2007.10.14;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.033 c