Функция CreateDC создает контекст устройства (DC) для устройства, используя заданное название.
Синтаксис
HDC CreateDC( LPCTSTR lpszDriver, // имя драйвера LPCTSTR lpszDevice, // название устройства LPCTSTR lpszOutput, // не используется; должно быть ПУСТО (NULL) CONST DEVMODE* lpInitData // необязательный указатель на данные ); |
lpszDriver
Windows 95/98/Me: Параметр lpszDriver может быть значением ПУСТО (NULL), WINSPL16 (источник печати), или (чтобы получить дисплейный контекст устройства (DC)) это может быть или символьная строка DISPLAY с нулем в конце или имя конкретного устройства отображения. Если lpszDevice определяет конкретное устройство, Вы должны использовать для параметра lpszDriver значение ПУСТО (NULL).Windows NT 4.0: Указатель на строку символов с нулем в конце, которая определяет или DISPLAY или название источника печати, который является обычно WINSPOOL.
Windows 2000/XP: Указатель на строку символов с нулем в конце, которая определяет или DISPLAY, или название заданного устройства отображения, или название источника печати, который является обычно WINSPOOL.
lpszDevice
[in] ] Указатель на строку символов с нулем в конце, которая устанавливает название используемого устройства вывода, как показано в окне диалога Диспетчер печати (Print Manager) (например, Epson FX-80). Это - не имя модели принтера. Параметр lpszDevice должен быть использован.Чтобы получать допустимые названия дисплеев, вызовите функцию EnumDisplayDevices.
Если lpszDriver равен DISPLAY, или названию конкретного устройства отображения, тогда lpszDevice должно быть значением ПУСТО (NULL) или же тем же самым именем устройства. Если lpszDevice - ПУСТО (NULL), тогда контекст устройства (DC) создается для первичного устройства отображения.
Windows NT 3.51 и Windows NT 4.0: Имеется только одно (поэтому первичное) устройство отображения. Параметр lpszDevice устанавливается в ПУСТО (NULL).
lpszOutput
Этот параметр игнорируется и должен устанавливаться в ПУСТО (NULL). Он предусматривается только для совместимости с 16-битовым Windows.
lpInitData
[in] Указатель на структуру DEVMODE, содержащую зависимые от устройства данные инициализации для драйвера устройства. Функция DocumentProperties извлекает эту структуру, заполненную для заданного устройства. Параметр lpInitData должно иметь значение ПУСТО (NULL), если драйвер устройства должен использовать заданную по умолчанию (типичную) инициализацию (если таковая имеется) определяемую пользователем.Если lpszDriver имеет значение DISPLAY, тогда lpInitData должен быть ПУСТО (NULL). Используется текущее устройство отображения DEVMODE .
Возвращаемые значения
Если функция завершается успешно, возвращаемое значение - дескриптор контекста устройства (DC) для заданного устройства.
Если функция завершается с ошибкой, возвращаемое значение - ПУСТО (NULL). Функция возвратит ПУСТО (NULL) для другой структуры DEVMODE, а не текущей DEVMODE.
Windows NT/2000/XP: Чтобы получать дополнительные сведения об ошибке, вызовите GetLastError.
Обратите внимание! на то, что дескриптор контекста устройства (DC) может быть использован только единственным потоком в любой момент времени. |
Чтобы получить правильные названия дисплеев для параметров lpszDriver и lpszDevice, обратитесь к функции EnumDisplayDevices, .
Когда Вы больше не нуждаетесь в контексте устройства (DC), вызовите функцию DeleteDC.
Windows 2000/XP: Если lpszDriver или lpszDevice равен DISPLAY, поток, который вызывает функцию CreateDC владеет HDC (дескриптором DC), который создается. Когда этот поток разрушается, HDC больше не допустим. Таким образом, если Вы создаете HDC и передаете его в другой поток, тогда выйдите из программы первого потока, так как второй поток будет не в состоянии использовать HDC.
ICM: Чтобы разрешить работу методом Независимого управления цветом (ICM), установите член dmICMMethod элемент структуры DEVMODE (указанный параметром pInitData ) в соответствующее значение.
Windows 95/98/Me: CreateDCW поддерживается программой Microsoft Layer for Unicode. Чтобы использовать ее, Вы должны добавить некоторые файлы к вашему приложению, как изложено в описании Microsoft Layer for Unicode для системы Windows 95/98/Me.
Пример смотри в статье Захват изображения.
Смотри также
Обзор Контексты устройства, Функции, используемые контекстами устройства, Многоэкранные мониторы, DeleteDC, DEVMODE, EnumDisplayDevices, DOCINFO, DocumentProperties, StartDoc
Размещение и совместимость CreateDC |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 3.1 и старше |
Windows Me |
Нет |
Windows 98 |
Нет |
Windows 95 |
Нет |
Используемая библиотека |
Gdi32.lib |
Заголовочный файл |
|
- объявлено в |
Wingdi.h |
- включено в |
Windows.h |
Unicode |
Реализуется как версии Unicode и ANSI для Windows 2000/XP. А также поддерживается программой Microsoft Layer for Unicode. |
Замечания по платформе |
Не имеется |