Этим контекстом обладают окна класса со стилем CS_OWNDC. Личный контекст получают один раз и настраивают его атрибуты, а освобождают только при завершении работы приложения. Функции BeginPaint, EndPaint, GetDC и ReleaseDC не влияют на личный контекст. Личный контекст экономит расход оперативной памяти.
Рассмотрим пример с таким контекстом. В предыдущем приложении стиль класса изменим на класс окон с личным контекстом:
wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
Тогда произойдут следующие изменения:
1. При запуске приложения устанавливаются атрибуты контекста только для окна hwnd1:
ContAttr(hwnd1);
Это можно заметить сразу после запуска. Окно hwnd1 при выводе использует атрибуты личного контекста, установленные функцией ContAttr. Окно hwnd2 использует атрибуты личного контекста, установленные по умолчанию операционной системой.
2. Экспериментируя с окнами, нажимая на клавиши мыши, можно заметить, что изменения атрибутов контекста одного окна никак не изменяют атрибутов вывода в другом окне. То есть каждое окно обладает своим личным контекстом.
Родительский контекст отображения
Этот контекст используют дочерние окна. Он позволяет дочерним окнам "унаследовать" атрибуты контекста отображения у родительского окна. Например, дочернее окно может использовать для вывода текста тот же шрифт и цвета, что и родительское окно.
С этой целью в стиле класса дочерних окон указывают значение CS_PARENTDC.






