Поделиться через


Функция CreateDCW (wingdi.h)

Функция CreateDC создает контекст устройства (DC) для устройства с указанным именем.

Синтаксис

HDC CreateDCW(
       LPCWSTR        pwszDriver,
  [in] LPCWSTR        pwszDevice,
       LPCWSTR        pszPort,
  [in] const DEVMODEW *pdm
);

Параметры

pwszDriver

Указатель на строку символов, завершающуюся значением NULL, которая указывает display или имя конкретного устройства отображения. Для печати рекомендуется передать NULL в lpszDriver, так как GDI игнорирует lpszDriver для устройств принтера.

[in] pwszDevice

Указатель на строку символов, завершающую значение NULL, которая указывает имя используемого устройства вывода, как показано в диспетчере печати (например, Epson FX-80). Это не имя модели принтера. Необходимо использовать параметр lpszDevice.

Чтобы получить допустимые имена для отображения, вызовите EnumDisplayDevices.

Если lpszDriver отображается или имя устройства определенного отображаемого устройства, lpszDevice должны быть null или то же имя устройства. Если lpszDeviceNULL, то для основного устройства отображения создается контроллер домена.

Если в системе есть несколько мониторов, вызов CreateDC(TEXT("DISPLAY"),NULL,NULL,NULL) создаст контроллер домена, охватывающий все мониторы.

pszPort

Этот параметр игнорируется и должен иметь значение NULL. Он предоставляется только для совместимости с 16-разрядной версией Windows.

[in] pdm

Указатель на структуру DEVMODE, содержащую данные инициализации для драйвера устройства. Функция DocumentProperties извлекает эту структуру, заполненную для указанного устройства. Параметр pdm должен быть NULL, если драйвер устройства должен использовать инициализацию по умолчанию (если таковые есть), указанные пользователем.

Если lpszDriver имеет значение DISPLAY, pdm должен быть NULL; Затем GDI использует текущий DEVMODEустройства отображения.

Возвращаемое значение

Если функция выполнена успешно, возвращаемое значение является дескриптором контроллера домена для указанного устройства.

Если функция завершается ошибкой, возвращаемое значение равно NULL.

Замечания

Обратите внимание, что дескриптор контроллера домена может использоваться только одним потоком в любое время.

Для параметров lpszDriver и lpszDeviceвызовите EnumDisplayDevices, чтобы получить допустимые имена для отображения.

Если контроллер домена больше не нужен, вызовите функцию DeleteDC.

Если lpszDriver или lpszDevice отображается, поток, вызывающий CreateDC, владеет созданным HDC. При уничтожении этого потока HDC больше не является допустимым. Таким образом, если создать HDC и передать его другому потоку, то выйти из первого потока, второй поток не сможет использовать HDC.

При вызове CreateDC для создания HDC для устройства отображения необходимо передать pdm NULL или указатель на DEVMODE, соответствующий текущему DEVMODE устройства отображения, lpszDevice. Мы рекомендуем передать NULL и не пытаться точно соответствовать DEVMODE для текущего устройства отображения.

При вызове CreateDC для создания HDC для устройства принтера драйвер принтера проверяет DEVMODE. Если драйвер принтера определяет, что DEVMODE является недопустимым (то есть драйвер принтера не может преобразовать или использовать DEVMODE), драйвер принтера предоставляет драйвер принтера DEVMODE для создания HDC для устройства принтера.

ICM: Чтобы включить ICM, задайте dmICMMethod член структуры DEVMODE (указывает на параметр pInitData) соответствующее значение.

Примеры

Пример см. в разделе записи изображения.

Заметка

Заголовок wingdi.h определяет CreateDC как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка wingdi.h (включая Windows.h)
библиотеки Gdi32.lib
DLL Gdi32.dll

См. также

DEVMODE

DOCINFO

DeleteDC

функций контекста устройства

Обзор контекстов устройств

DocumentProperties

EnumDisplayDevices

нескольких мониторов отображения

StartDoc