Функция CreateDC


Функция 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.

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz