CDC::GetDeviceCaps( )
Прототип:
int GetDeviceCaps (int nIndex) const;
С помощью этой функции можно получить специфическую информацию относительно экранного устройства. Этим устройством может быть как экран монитора, так и принтер с плоттером.
nIndex - Тип возвращаемой информации. Может быть любой из следующих величин:
- DRIVERVERSION - Номер версии; например, 0x100 для 1.0
- DT_PLOTTER - Векторный плоттер
- DT_RASDISPLAY - Растровый дисплей
- DT_RASPRINTER - Растровый принтер
- DT_RASCAMERA - Растровая камера
- DT_CHARSTREAM - Поток знаков
- DT_METAFILE - Метафайл
- DT_DISPFILE - Дисплейный файл
- HORZSIZE - Ширина физического дисплея (в миллиметрах)
- VERTSIZE - Высота дисплея (в миллиметрах)
- HORZRES - Ширина дисплея (в пикселях)
- VERTRES - Высота дисплея (в линиях растра)
- LOGPIXELSX - Число пикселей на горизонтальный логический дюйм
- LOGPIXELSY - Число пикселей на вертикальный логический дюйм
- BITSPIXEL - Число смежных цветовых битов для каждого пикселя
- PLANES - Число цветовых плоскостей
- NUMBRUSHES - Число зависимых от устройства кистей
- NUMPENS - Число зависимых от устройства перьев
- NUMFONTS - Число зависимых от устройства шрифтов
- NUMCOLORS - Число элементов в таблице цветов устройства
- ASPECTX - Относительная ширина пикселя устройства, которая используется для линий рисунка
- ASPECTY - Относительная высота пикселя устройства, которая используется для линий рисунка
- ASPECTXY - Диагональная ширина пикселя устройства, которая используется для линии рисунка
- PDEVICESIZE - Размер внутренней структуры данных PDEVICE
- CLIPCAPS - Возможности усечения устройства
- SIZEPALETTE - Число элементов в палитре системы. Этот индекс имеет силу, только если драйвер устройства устанавливает бит RC_PALETT в индексе RASTERCAPS
- NUMRESERVED - Число зарезервированных элементов в палитре системы. Этот индекс имеет силу, только если драйвер устройства устанавливает бит RC_PALETT в индексе RASTERCAPS
- COLORRES - Фактическое цветовое разрешение устройства в битах на пиксель. Этот индекс имеет силу, только если драйвер устройства устанавливает бит RC_PALETT в индексе RASTERCAPS
- RASTERCAPS - Значение, указывающее растровые возможности устройства
RASTERCAPS может быть комбинацией следующих значений:
- RC_BANDING - Требует поддержки связи
- RC_BIGFONT - Поддерживает шрифты, большие чем 64 Кбайт
- RC_BITBLT - Способен к пересылке битовых карт
- RC_BITMAP64 - Поддерживает битовые карты, большие чем 64 Кбайт
- RC_DEVBITS - Поддерживает битовые карты устройства
- RC_DI_BITMAP - Способен поддерживать функции Windows SetDIBits и GetDIBits
- RC_DIBTODEV - Способен поддерживать функцию Windows SetDIBitsToDevice
- RC_FLOODFILL - Способен к выполнению полного заполнения
- RC_GD120_OUTPUT - Способен к поддержке особенностей версии Windows 2.0
- RC_GD120_STATE - Включает блок состояния в контекст устройства
- RC_NONE - Не поддерживает растровые операции
- RC_OP_DX_OUTPUT - Поддерживает непрозрачность и DX массив
- RC_PALETTE - Определяет устройство базовой палитры
- RC_SAVEBITMAP - Способен к локальному хранению битовых карт
- RC_SCALING - Способен к масштабированию
- RC_STRETCHBLT - Способен к выполнению функции - члена StretchBlt
- RC_STRETCHDIB - Способен к выполнению функции Windows StretchDIBits
- CURVECAPS - Возможность построения кривых
CURVECAPS может быть комбинацией следующих значений:
- CC_NONE - Поддерживает кривые
- CC_CIRCLES - Поддерживает круги
- CC_PIE - Поддерживает секторные диаграммы
- CC_CHORD - Поддерживает хорды
- CC_ELIPSES - Поддерживает эллипсы
- CC_WIDE - Поддерживает широкие грани
- CC_STYLED - Поддерживает стилизованные границы
- CC_WIDESTYLED - Поддерживает широкие стилизованные границы
- CC_INTERIORS - Поддерживает внутреннее заполнение
- CC_ROUNDRECT - Поддерживает прямоугольники со скругленными углами
- LINECAPS - Возможности построения линий
LINECAPS может быть комбинацией следующих значений:
- LC_NONE - Не поддерживает никакие линии
- LC_PLYUNE - Поддерживает полилинии
- LC_MARKER - Поддерживает метки
- LC_POLYMARKER - Поддерживает полимаркеры
- LC_WIDE - Поддерживает широкие линии
- LC_STYLED - Поддерживает стилизованные линии
- LC_WIDESTYLED - Поддерживает широкие стилизованные линии
- LC_INTERIORS - Поддерживает внутреннее заполнение
- POLYGONALCAPS - Возможности построения прямоугольников
POLYGONALCAPS может быть комбинацией следующих значений:
- PC_NONE - Не поддерживает многоугольники
- PC_POLYGON - Поддерживает заполненные прямоугольники
- PC_RECTANGLE - Поддерживает прямоугольники
- PC_WINDPOLYGON - Поддерживает многоугольники с волнистой штриховкой
- PC_SCANLINE - Поддерживает одинарные линии
- PC_WIDE - Поддерживает широкие границы
- PC_STYLED - Поддерживает стилизованные границы
- PC_WIDESTYLED - Поддерживает широкие стилизованные границы
- PC_INTERIORS - Поддерживает внутреннее заполнение
- TEXTCAPS - Поддерживает текстовые возможности
TEXTCAPS может быть комбинацией следующих значений:
- TC_OP_CHARACTER - Поддерживает точный вывод символов, то есть устройство может размещать свои шрифты в любом месте пикселя. Эта возможность требуется для любого устройства со шрифтами
- TC_OP_STROKE - Поддерживает точный вывод штриха, то есть устройство может опускать любой штрих своего шрифта
- TC_CP_STROKE - Поддерживает точную отсечку штрихов, то есть устройство может обрезать свои шрифты на границе пикселя
- TC_CR_90 - Поддерживает поворот знака на 90 градусов, то есть устройство может вращать знаки только на 90 градусов единовременно
- TC_CR_ANY - Поддерживает вращение знака на любой угол, то есть устройство может вращать свои шрифты на любой угол
- TC_SF_X_YINDEP - Поддерживает масштабирование по x и y, то есть устройство может независимо масштабировать свои шрифты по осям x и y
- TC_SA_DOUBLE - Поддерживает двойное масштабирование, то есть устройство может удвоить размер своего шрифта
- TC_SA_INTEGER - Поддерживает масштабирование в целое число раз, то есть устройство может масштабировать размер своего шрифта в любое целое число раз
- TC_SA_CONTIN - Поддерживает масштабирование в любое число раз, то есть устройство может масштабировать свои шрифты в любое число раз, сохраняя горизонтальные и вертикальные пропорции
- TC_EA_DOUBLE - Поддерживает вывод жирных символов, то есть устройство может делать свои шрифты полужирными. Если для драйвера принтера бит не установлен, GDI пытается создать полужирные шрифты устройства, печатая их дважды
- TC_IA_ABLE - Поддерживает вывод курсива, то есть устройство может делать свои шрифты курсивными. Если этот бит не установлен, GDI предполагает, что курсив не доступен
- TC_UA_ABLE - Поддерживает подчеркивание, то есть устройство может подчеркивать свои шрифты. Если этот бит не установлен, GDI создает подчеркивание под шрифтом устройства
- TC_SO_ABLE - Поддерживает перечеркивание, то есть устройство может перечеркивать свои шрифты. Если этот бит не установлен, GDI создает перечеркивание для шрифтов устройства
- TC_RA_ABLE - Поддерживает рисование растровых шрифтов, то есть при вызове функций Windows EnumFonts или EnumFontFamilies GDI должен перечислить все растровые или TrueType шрифты, доступные для устройства. Если этот бит не установлен, поставляемые GDI растровые или TrueType шрифты не перечисляются при вызове вышеуказанных функций
- TC_VA_ABLE - Поддерживает векторные шрифты, то есть при вызове функций Windows EnumFonts или EnumFontFamilies GDI должен перечислить все векторные шрифты, доступные для устройства. Это важно только векторных устройств (то есть графопостроителей). Драйвер дисплея (который должен быть способен использовать растровые шрифты) и растрового принтера всегда перечисляют векторные шрифты, потому что GDI растеризирует их перед передачей драйверу
- TC_RESETVED - Зарезервировано; должно быть 0