Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.01.31;
Скачать: CL | DM;

Вниз

Храним HDC окна. Плохо?   Найти похожие ветки 

 
@!!ex ©   (2009-02-16 16:49) [0]

В документации говорится, что надо получать HDC с помощью GetDC и после использования сразу освобождать с помощью ReleaseDC.
Так работает OnPaint. Там получается DC в начале события и релизится вконце.
Почеме нельзя получать HDC при создании окна и освобождать по окончанию работы?


 
clickmaker ©   (2009-02-16 17:11) [1]

потому что это некая внутренняя структура, которая инициализируется какждый раз при получении, к тому же не разделяемая между потоками.
Это - для обычных DC, которых в вин9х вообще ограниченное число - т.е. дань обратной совместимости.
Но есть еще классовые DC, которые разделяются между окнами одного класса, их не освобождают поэтому. Это для окон со стилем класса CS_CLASSDC.
Есть приватные DC, которые создаются один раз для каждого окна - CS_OWNDC, их тоже можно не освобождать, на на 9х они опять же приведут к быстрому перерасходу ресурсов.


 
@!!ex ©   (2009-02-16 17:23) [2]

Если я получу CS_OWNDC для окна под ОС не ниже XP, то могу только с ним работать?


 
clickmaker ©   (2009-02-16 17:37) [3]

если ресурсов достаточно, то да
но злоупотреблять не стоит этим, все-таки GDI не бездонный


 
MBo ©   (2009-02-16 17:39) [4]

да

только не "получу CS_OWNDC для окна", а у окна в стиль должен быть включен этот ключ


 
Eraser ©   (2009-02-16 17:42) [5]

> [0] @!!ex ©   (16.02.09 16:49)

где именно в документации это говорится?

вообще то никаких GetDC напрямую не вызывается, по крайней мере в VCL. вызывается BeginPaint.

> Почеме нельзя получать HDC при создании окна и освобождать
> по окончанию работы?

VCL вроде того и сделано. только HDC обернут в TCanvas.



Страницы: 1 вся ветка

Текущий архив: 2010.01.31;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
1-1235936478
Cobalt
2009-03-01 22:41
2010.01.31
Ограничение "mailto:" на размер &subj ?


3-1233777154
Noir
2009-02-04 22:52
2010.01.31
Обновление


2-1259607144
andrewtitoff
2009-11-30 21:52
2010.01.31
Задняя форма


2-1256560287
Aleks
2009-10-26 15:31
2010.01.31
Выравнивание колонок ListView по содержимому


15-1259395731
DVM
2009-11-28 11:08
2010.01.31
Подскажите хорошую программу для хранения персональной инфы