Функция 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 |
См. также раздел
Общие сведения о контекстах устройств