Этот контекст используется для хранения изображений, которые затем будут скопированны
на устройство вывода. Сам по себе контекст в памяти не создается. Он обязательно
создается как совместимый с тем устройством или окном, на которое предполагается
копировать информацию (вот он - совместимый контекст - переходник между программой и
драйвером устройства!). Алгоритм работы с контекстом в памяти состоит из нескольких
шагов:
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 - увидеть, значит поверить).