Этот
контекст используется для хранения изображений,
которые затем будут скопированны на устройство
вывода. Сам по себе контекст в памяти не
создается. Он обязательно создается как
совместимый с тем устройством или окном, на
которое предполагается копировать информацию
(вот он - совместимый контекст - переходник между
программой и драйвером устройства!). Алгоритм
работы с контекстом в памяти состоит из
нескольких шагов:
1. Получения хэндла контекста устройства
(назовем его hDC - handle of Device Context) для окна, в которое
будет осуществляться вывод изображения.
2. Получения хэндла bitmap'а, который будет
отображаться в окне.
3. Получения совместимого с hDC контекста в
памяти (для хранения изображения) с помощью
функции CreateCompatibleDC() (обратите внимание на
название функции - создать СОВМЕСТИМЫЙ контекст).
4. Выбора изображения (hBitmap) как текущего
для контекста в памяти ( hCompatibleDC).
5. Копирования изображения контекста в
памяти (hCompatibleDC) на контекст устройства (hDC).
6. Удаления совместимого контекста
(hCompatibleDC).
7. Принятия мер для того, чтобы замещенный
bitmap из контекста в памяти не остался в памяти.
8. Освобождения контекста устройства (hDC).
При необходимости шаги 6 и 7 можно
поменять местами. Когда и как удалять замещенный
bitmap, зависит от программиста и поставленной
перед ним задачи.
Именно этот способ и используется в
большинстве программ для копирования
изображения.
Но, как известно, лучше один раз увидеть,
чем сто раз услышать (по-английски это звучит еще
более категорично - seeing is believing - увидеть, значит
поверить). |