Функция 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 |
Нет |
Замечания по платформе |
Не имеется |