КГ_6глава (1024115), страница 3
Текст из файла (страница 3)
Изображение вначале рисуется в контексте памяти, а затем быстро копируется на экран с помощью функции BitBit.
Программы КГ часто применяют подобный способ рисования — "за экраном". Этот способ называется двойной буферизацией (double buffering). Кроме анимации, использование двойной буферизации иногда позволяет ускорить рисование — если графические функции могут рисовать в контексте памяти быстрее, чем в окне на экране. Также полезно использование контекста памяти тогда, когда программа, например графический редактор, манипулирует изображением, которое по размерам больше, чем способен отобразить экран дисплея.
Параметры контекста графического устройства
Для рисования важно знать параметры графического устройства, такие как размеры области отображения, количество цветов. Для этого можно использовать функцию GetDeviceCaps:
value = GetDeviceCaps (hdc, index); Для того чтобы узнать необходимые параметры контекста hdc, нужно в качестве аргумента index задавать соответствующие значения. Например:
Так можно узнать размеры в пикселах (сх, су), разрешающую способность (dpix, dpiY), количество бит на пиксел для цвета (bits) и много других параметров.
Такие параметры, как размеры изображения (сх, су) для окна можно получить И другими способами, например, ВЫЗОВОМ функции GetClientRect:
Эта функция заполняет поля структуры гс типа rect. Поля rc.ieft и rc.top заполняются нулями, а поля гс. right и re. bottom хранят координаты соответственно правого и нижнего края данного окна.