Функция GetDeviceCaps извлекает зависимую от устройства информацию для заданного устройства.
Синтаксис
int GetDeviceCaps( HDC hdc, // дескриптор DC int nIndex // индекс действия ); |
Параметры
hdc
[in] Дескриптор DC.nIndex
[in] Устанавливает элемент для возврата. Этот параметр может быть одним из ниже перечисленных значений.
| Индекс | Предназначение | |||
|---|---|---|---|---|
| DRIVERVERSION | Версия драйвера устройства. | |||
| TECHNOLOGY | Технология устройства. Это может быть любое из ниже перечисленных значений. | |||
| DT_PLOTTER | Векторный графопостроитель | |||
| DT_RASDISPLAY | Растровый дисплей | |||
| DT_RASPRINTER | Растровое печатающее устройство | |||
| DT_RASCAMERA | Растровая камера | |||
| DT_CHARSTREAM | Поток символов | |||
| DT_METAFILE | Метафайл | |||
| DT_DISPFILE | Дисплейный файл | |||
| Если параметр hdc - дескриптор контекста устройства (DC) расширенного метафайла, технология устройства - это ссылка на устройство, которое определено функцией CreateEnhMetaFile. Чтобы выяснить, является ли это контекстом устройства (DC) расширенного метафайла, используется функция GetObjectType. | ||||
| HORZSIZE | Ширина, в миллиметрах, физического экрана. | |||
| VERTSIZE | Высота, в миллиметрах, физического экрана. | |||
| HORZRES | Ширина, в пикселях, экрана. | |||
| VERTRES | Высота, в растровых строках, экрана. | |||
| LOGPIXELSX | Число пикселей на логический дюйм по экранной ширине. В системе с много экранными мониторами, это значение одно и то же для всех мониторов. | |||
| LOGPIXELSY | Число пикселей на логический дюйм по экранной высоте. В системе с много экранными мониторами, это значение одно и то же для всех мониторов. | |||
| BITSPIXEL | Число смежных цветных битов для каждого пикселя. | |||
| PLANES | Число цветовых плоскостей. | |||
| NUMBRUSHES | Число зависимых от устройства кистей. | |||
| NUMPENS | Число зависимых от устройства перьев. | |||
| NUMFONTS | Число зависимых от устройства шрифтов. | |||
| NUMCOLORS | Число записей в таблице цветов устройства, если устройство имеет разрядность (глубину) цвета не больше, чем 8 битов на пиксель. Для устройств с большими разрядностями цвета, возвращается - (минус) 1. | |||
| ASPECTX | Относительная ширина пикселя устройства, которое использовалась для рисования линии. | |||
| ASPECTY | Относительная высота пикселя устройства, которое использовалась для рисования линии. | |||
| ASPECTXY | Диагональная ширина пикселя устройства, которое использовалась для рисования линии. | |||
| PDEVICESIZE | Зарезервированный. | |||
| CLIPCAPS | Флажок, который обозначает возможности отсечения по границам устройства. Если устройство может ограничить прямоугольник, это значение 1. В противном случае, оно - 0. | |||
| SIZEPALETTE | Число записей в системной палитре. Этот индекс правилен, только тогда, если драйвер устройства устанавливает бит RC_PALETTE в индексе RASTERCAPS , и доступен, только тогда, если драйвер совместим с 16-битовым Windows. | |||
| NUMRESERVED | Число зарезервированных записей в системной палитре. Этот индекс допустим только тогда, если драйвер устройства устанавливает бит RC_PALETTE в индексе RASTERCAPS , и доступен, только тогда, если драйвер совместим с 16-битовым Windows. | |||
| COLORRES | Реальная цветная разрешающая способность устройства, в битах на пиксель. Этот индекс допустим только тогда, если драйвер устройства устанавливает бит RC_PALETTE в индексе RASTERCAPS и доступен, только тогда, если драйвер совместим с 16-битовым Windows. | |||
| PHYSICALWIDTH | Для печатающих
устройств: ширина физической
страницы, в единицах измерения
устройства. Например, принтер,
установленный, чтобы печатать 600
точек на дюйм на 8.5x11- дюймовой бумаге
имеет физическое значение ширины 5100
единиц измерения устройства (пикселей).
|
|||
| PHYSICALHEIGHT | Для печатающих
устройств: высота физической
страницы, в единицах измерения
устройства. Например, принтер,
установленный, чтобы печатать 600
точек на дюйм на 8.5x11- дюймовой бумаге
имеет физическое значение высоты 6600
единиц измерения устройства (пикселей).
|
|||
| PHYSICALOFFSETX | Для печатающих устройств: расстояние от левой кромки физической страницы до левой кромки печатаемой области, в единицах измерения устройства. Например, принтер, установленный, чтобы печатать 600 точек на дюйм на 8.5x11- дюймовой бумаге, который не может печатать на крайней левой стороне менее чем 0.25-дюйма от края бумаги, имеет горизонтальное физическое смещение 150 единиц измерения устройства (пикселей). | |||
| PHYSICALOFFSETY | Для печатающих устройств: расстояние от верхней кромки физической страницы до верхней кромки печатаемой области, в единицах измерения устройства. Например, принтер, установленный, чтобы печатать 600 точек на дюйм на 8.5x11- дюймовой бумаге, который не может печатать на крайней верхней стороне менее чем 0.5-дюйма от края бумаги, имеет вертикальное физическое смещение 300 единиц измерения устройства (пикселей). | |||
| VREFRESH | Windows NT/2000/XP:
Для
устройств отображения: текущая
частота кадровой развертки
устройства, в периодах в секунду (Гц).
Значение частоты кадровой развертки 0 или 1 обозначает заданную по умолчанию частоту регенерации вывода на экран аппаратного средства . Эта заданная по умолчанию скорость обычно устанавливается при включении видеокарты или системной платы компьютера, или программой конфигурации, которая не использует функции вывода на экран такую как ChangeDisplaySettings. |
|||
| SCALINGFACTORX | Масштабный коэффициент для оси X принтера. | |||
| SCALINGFACTORY | Масштабный коэффициент для оси Y принтера. | |||
| BLTALIGNMENT | Windows NT/2000/XP: Привилегированная горизонталь, рисующая ровную линию, выраженную как множество пикселей. Для самой лучшей эффективности рисования, окна должны быть горизонтально выровнены по множеству этих значений. Значение нуля обозначает, что устройство ускоряется, и может быть использовано любое выравнивание . | |||
| SHADEBLENDCAPS | Windows 98/Me, Windows 2000/XP: Значение, которое обозначает оттенение и смешивание возможностей устройства. Дальнейшие комментарии см. в разделе Замечания. | |||
| SB_CONST_ALPHA | Обрабатывает член SourceConstantAlpha структуры BLENDFUNCTION, на которую ссылается параметр blendFunction функции AlphaBlend. | |||
| SB_GRAD_RECT | Дает возможность обрабатывать прямоугольники функцией GradientFill. | |||
| SB_GRAD_TRI | Дает возможность обрабатывать треугольники функцией GradientFill. | |||
| SB_NONE | Устройство не поддерживает ни одну из этих возможностей. | |||
| SB_PIXEL_ALPHA | Дает возможность обрабатывать на один пиксель уровень непрозрачности в функции AlphaBlend. | |||
| SB_PREMULT_ALPHA | Дает возможность обрабатывать умножаемый в обратном порядке уровень непрозрачности в функции AlphaBlend. | |||
| RASTERCAPS | Значение, которое обозначает растровые характеристики устройства, как показано в ниже следующей таблице. | |||
| RC_BANDING | Требует, чтобы поддерживалось разбиение изображения на полосы. | |||
| RC_BITBLT | Дает возможность передачи точечных рисунков. | |||
| RC_BITMAP64 | Дает возможность поддержки точечных рисунков больших, чем 64 Кбайта. | |||
| RC_DI_BITMAP | Дает возможность поддержки функций SetDIBits и GetDIBits. | |||
| RC_DIBTODEV | Дает возможность поддержки функции SetDIBitsToDevice. | |||
| RC_FLOODFILL | Дает возможность выполнения заливки. | |||
| RC_PALETTE | Устанавливает основную палитры устройства. | |||
| RC_SCALING | Дает возможность масштабирования. | |||
| RC_STRETCHBLT | Давать возможность выполнения функции StretchBlt. | |||
| RC_STRETCHDIB | Дает возможность выполнения функции StretchDIBits. | |||
| CURVECAPS | Значение, которое обозначает возможности устройства рисовать кривые, как показано в ниже следующей таблице. | |||
| CC_NONE | Устройство не поддерживает кривые. | |||
| CC_CHORD | Устройство может рисовать сегменты. | |||
| CC_CIRCLES | Устройство может рисовать круги. | |||
| CC_ELLIPSES | Устройство может рисовать эллипсы. | |||
| CC_INTERIORS | Устройство может рисовать внутренние части. | |||
| CC_PIE | Устройство может рисовать секторы. | |||
| CC_ROUNDRECT | Устройство может рисовать прямоугольники с закругленными углами. | |||
| CC_STYLED | Устройство может рисовать стилизованные рамки. | |||
| CC_WIDE | Устройство может рисовать толстые рамки. | |||
| CC_WIDESTYLED | Устройство может рисовать толстые и стилизованные рамки. | |||
| LINECAPS | Значение, которое обозначает возможности устройства рисовать линии, как показано в ниже следующей таблице: | |||
| LC_NONE | Устройство не поддерживает линии. | |||
| LC_INTERIORS | Устройство может рисовать внутри частей. | |||
| LC_MARKER | Устройство может рисовать маркер. | |||
| LC_POLYLINE | Устройство может рисовать ломаную линию. | |||
| LC_POLYMARKER | Устройство может нарисовать несколько маркеров. | |||
| LC_STYLED | Устройство может рисовать стилизованные линии. | |||
| LC_WIDE | Устройство может рисовать толстые линии. | |||
| LC_WIDESTYLED | Устройство может рисовать линии, которые являются толстыми и стилизованными. | |||
| POLYGONALCAPS | Значение, которое обозначает возможности устройства рисовать многоугольники, как показано в ниже следующей таблице. | |||
| PC_NONE | Устройство не поддерживает многоугольники. | |||
| PC_INTERIORS | Устройство может рисовать внутри частей. | |||
| PC_POLYGON | Устройство может рисовать многоугольники переменной заливки. | |||
| PC_RECTANGLE | Устройство может рисовать прямоугольники. | |||
| PC_SCANLINE | Устройство может рисовать одиночную растровую линию. | |||
| PC_STYLED | Устройство может рисовать стилизованные рамки. | |||
| PC_WIDE | Устройство может рисовать толстые рамки. | |||
| PC_WIDESTYLED | Устройство может рисовать толстые и стилизованные рамки. | |||
| PC_WINDPOLYGON | Устройство может рисовать многоугольники спирального заполнения. | |||
| TEXTCAPS | Значение, которое обозначает текстовые возможности устройства, как показано в ниже следующей таблице. | |||
| TC_OP_CHARACTER | Устройство получает возможность точного вывода символов. | |||
| TC_OP_STROKE | Устройство получает возможность точного вывода штрихов. | |||
| TC_CP_STROKE | Устройство получает возможность точной обрезки штрихов. | |||
| TC_CR_90 | Устройство получает возможность поворачивать символ на 90 градусов.. | |||
| TC_CR_ANY | Устройство получает возможность поворачивать любой символ. | |||
| TC_SF_X_YINDEP | Устройство может масштабировать независимо в направлениях по x и y. | |||
| TC_SA_DOUBLE | Устройство получает возможность удвоенного масштабирования символа. | |||
| TC_SA_INTEGER | Устройство использует целочисленные множители только для масштабирования символов. | |||
| TC_SA_CONTIN | Устройство использует любые множители для точного масштабирования символов. | |||
| TC_EA_DOUBLE | Устройство может рисовать символы двойной толщины. | |||
| TC_IA_ABLE | Устройство может выделить курсивом. | |||
| TC_UA_ABLE | Устройство может подчеркнуть. | |||
| TC_SO_ABLE | Устройство может рисовать зачеркнутые шрифты. | |||
| TC_RA_ABLE | Устройство может рисовать растровые шрифты. | |||
| TC_VA_ABLE | Устройство может рисовать векторные шрифты. | |||
| TC_RESERVED | Зарезервировано; должно быть нуль. | |||
| TC_SCROLLBLT | Устройство
не может использовать
прокручивание передачи битовых
блоков.
|
|||
| COLORMGMTCAPS | Windows 2000/XP: Значение, которое обозначает возможности устройства управления цветом. | |||
| CM_CMYK_COLOR | Устройство может принять CMYK совокупность параметров соответствия цветов контроллера прерываний (ICC) цветового пространства. | |||
| CM_DEVICE_ICM | Устройство может выполнить Независимое управление цветом (ICM) или в драйвере устройства или на устройстве непосредственно. | |||
| CM_GAMMA_RAMP | Устройство поддерживает функции GetDeviceGammaRamp и SetDeviceGammaRamp. | |||
| CM_NONE | Устройство не поддерживает Независимое управление цветом (ICM). | |||
Возвращаемое значение устанавливает значение требуемого элемента.
Когда параметр nIndex равен BITSPIXEL, а устройство имеет 15bpp или 16bpp, возвращаемое значение - 16.
Когда nIndex равен SHADEBLENDCAPS:
Функция GetDeviceCaps предусматривает нижеследующие шесть индексов вместо вывода принтера.
| Индекс | Замененный вывод принтера |
|---|---|
| PHYSICALWIDTH | GETPHYSPAGESIZE |
| PHYSICALHEIGHT | GETPHYSPAGESIZE |
| PHYSICALOFFSETX | GETPRINTINGOFFSET |
| PHYSICALOFFSETY | GETPHYSICALOFFSET |
| SCALINGFACTORX | GETSCALINGFACTOR |
| SCALINGFACTORY | GETSCALINGFACTOR |
Пример смотри в статье Подготовка к печати.
Обзор Контексты устройства, Функции, используемые контекстами устройства, CreateEnhMetaFile, CreateIC, DeviceCapabilities, GetDIBits, GetObjectType, SetDIBits, SetDIBitsToDevice, StretchBlt, StretchDIBits
|
Размещение и совместимость GetDeviceCaps |
|
|
Windows. NET Server |
Да |
|
Windows XP |
Да |
|
Windows 2000 |
Да |
|
Windows NT |
Да версии 3.1 и выше |
|
Windows Me |
Да |
|
Windows 98 |
Да |
|
Windows 95 |
Да |
|
Используемая библиотека |
Gdi32.lib |
|
Заголовочный файл |
|
|
- объявлено в |
Wingdi.h |
|
- включено в |
Windows.h |
|
Unicode |
Нет |
|
Замечания по платформе |
Не имеется |