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


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

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

Синтаксис

HDC CreateDCA(
       LPCSTR         pwszDriver,
  [in] LPCSTR         pwszDevice,
       LPCSTR         pszPort,
  [in] const DEVMODEA *pdm
);

Параметры

pwszDriver

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

[in] pwszDevice

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

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

Если lpszDriver имеет значение DISPLAY или имя конкретного устройства отображения, то lpszDevice должно иметь значение NULL или это же имя устройства. Если lpszDevice имеет значение NULL, то для основного устройства отображения создается контроллер домена.

Если в системе несколько мониторов, вызов 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 имеет значение DISPLAY, поток, вызывающий 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 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header wingdi.h (включая Windows.h)
Библиотека Gdi32.lib
DLL Gdi32.dll

См. также раздел

DEVMODE

DOCINFO

DeleteDC

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

Общие сведения о контекстах устройств

DocumentProperties

EnumDisplayDevices

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

StartDoc