Функция GetDeviceCaps


Функция 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

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz