Функция GetDC извлекает дескриптор дисплейного контекста устройства (DC) для рабочей области заданного окна или для всего экрана. Вы можете использовать возвращенный дескриптор в последующих функциях GDI, чтобы рисовать в контексте устройства.
Функция GetDCEx - это улучшенная GetDC, который дает приложению больше контроля, как и происходит ли отсечение по границам в рабочей области.
Синтаксис
HDC GetDC( HWND hWnd // дескриптор окна ); |
hWnd
[in] Дескриптор окна, контекст устройства (DC) которого должен извлечься. Если это значение - ПУСТО (NULL), GetDC извлекает контекст устройства (DC) для всего экрана.Windows 98/Me, Windows 2000/XP: Чтобы получить контекст устройства (DC) для конкретного экранного монитора, используйте функцию EnumDisplayMonitors и CreateDC.
Если функция завершается успешно, возвращаемое значение - дескриптор контекста устройства (DC) для рабочей области заданного окна.
Если функция завершается ошибкой, возвращаемое значение - ПУСТО (NULL).
Windows NT/2000/XP: Чтобы получать дополнительные сведения об ошибке, вызовите GetLastError.
Функция GetDC извлекает общий, для класса, или частный контекст устройства (DC) в зависимости от стиля класса заданного окна. Для класса и частного контекстов устройства (DC), функция GetDC оставляет предварительно назначенные атрибуты неизменными. Однако, для общих контекстов устройства (DC), GetDC назначает атрибуты контексту устройства (DC) по умолчанию, каждый раз, когда он извлекается. Например, заданный по умолчанию шрифт System, который является растровым шрифтом. Поскольку это так, дескриптор общего контекста устройства (DC), возвращенный при помощи GetDC, не говорит Вам, какой шрифт, цвет или кисть были использованы, когда выводилось окно. Чтобы определить шрифт, вызовите функцию GetTextFace.
Обратите внимание! на то, что дескриптор контекста устройства (DC) может быть использован в любой момент только одиночным потоком. |
После рисования общим контекстом устройства (DC), должна вызваться функция ReleaseDC, чтобы освободить контекст устройства. Для DC класса и частный контексты устройства не должны освобождаться. Функция ReleaseDC должна вызываться из того же самого потока, который вызвал GetDC. Число контекстов устройства (DC) ограничено только доступной памятью.
Windows 95/98/Me: Имеется только 5 доступных общих контекстов устройства (DC) на один поток, в соответствии с этим отказ освободить контекст устройства (DC) может воспрепятствовать другим приложениям обращаться к нему.Код примера
Пример смотри в статье Рисование мышью.
Смотри такжеОбзор Контексты устройства, Функции, используемые контекстами устройства, GetDCEx, ReleaseDC, GetTextFace, GetWindowDC
Размещение и совместимость GetDC |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 3.1 и выше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
User32.lib |
Заголовочный файл |
|
- объявлено в |
Winuser.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |