EndPaint(hWnd.&ps); //В ps.hdc хранится дескриптор того же контекста, что
//и в hDC. поэтому EndPaintO имеет достаточно информации для удаления
//контекста, связанного с hDC.
}
}
Следует обратить внимание на то, что фон эллипса «непрозрачен» - под штриховкой не видно фоновой картинки, а сквозь эллипс не просвечивает прямоугольник. Также следует учесть, что контур эллипса обведен линией, цвет которой не изменяется при прохождении ее над прямоугольником.
Для размещения контекста и его элементов разработчики ОС могли использовать общую динамически распределяемую область памяти, и тогда количество одновременно созданных элементов ограничивалось бы только размером ОЗУ. Но можно было бы предусмотреть отдельную область памяти фиксированного размера (индивидуальный для каждого типа объектов или один на все типы). В системе Windows реализован второй вариант. В [4] указано, что система позволяет создать не более 16 384 объектов GDI. Поэтому, если циклично создавать, например, кисть и не уничтожать ее, то выделенная для этих целей память рано или поздно исчерпается. В результате все рисунки начнут рисоваться с атрибутами, принятыми по умолчанию.
Изменение контекста и скорость рисования При формировании сложного изображения его фрагменты могут создаваться при помощи функций, получающих в качестве параметра контекст устройства, созданный для рисования изображения в целом. Каждая из этих функций, в свою очередь, вызывает функции рисования более мелких фрагментов. Но рисование фрагмента может потребовать изменения настройки контекста. В GDI предусмотрены средства быстрого запоминания содержимого контекста при входе в функцию рисования и восстановления его при выходе. Для этого в начале процедуры нужно запомнить объекты контекста в стеке при помощи функции SaveDC(hdc), которая возвращает целочисленное значение. Возвращаемый идентификатор контекста Id используется для восстановления запомненного контекста функцией RestoreDC(hdc. Id) при выходе из процедуры. Вызов функции RestoreDCChdc.-1) будет восстанавливать последний из сохраненных контекстов.