捐助郴维网
感谢您对郴维网的支持,你的支持将是郴维网持续发展的动力!
二维码
×
当前位置:郴维网 >API档案 > 正文
23 2017.05

GetDeviceCaps

点击次数:1296 更新时间:2017-5-23 10:23:12  【打印此页

函数功能:

GetDeviceCaps 函数用于获得指定设备的一些特定信息。


API 函数原型:

注释:_In_ 说明该参数是输入的。

int GetDeviceCaps(
  _In_  HDC hdc,
  _In_  int nIndex
);


参数解析:

参数

含义

hdc

设备环境句柄

nIndex

索引值,根据这个索引值该函数获得并返回相应信息的值



nIndex 的索引值可以是以下值:

索引值

含义

DRIVERVERSION

设备驱动程序版本

TECHNOLOGY

1. 设备技术,可以是下列任何一个值:

DT_PLOTTER

矢量绘图仪

DT_RASDISPLAY

光栅显示器

DT_RASPRINTER

光栅打印机

DT_RASCAMERA

光栅照相机

DT_CHARSTREAM

字符流

DT_METAFILE

图元文件

DT_DISPFILE

显示器文件

2. 如果 hdc 参数是增强型图元文件的设备环境句柄,则设备技术就是给 CreateEnhMetaFile 函数的引用设备,使用 GetObjectType 函数可以确定它是否增强型图元文件的设备环境。

HORZSIZE

物理显示器的宽度(毫米)

VERTSIZE

物理显示器的高度(毫米)

HORZRES

物理显示器的宽度(像素)

VERTRES

物理显示器的高度(像素)

LOGPIXELSX

1. 沿显示器宽度每逻辑英寸的像素数
2. 在多显示器系统中,该值对所显示器相同

LOGPIXELSY

1. 沿显示器高度每逻辑英寸的像素数
2. 在多显示器系统中,该值对所显示器相同

BITSPIXEL

每个像素的色彩位数

PLANES

色彩平面的数目

NUMBRUSHES

设备指定的画刷数

NUMPENS

设备指定的画笔数

NUMFONTS

设备指定的字体数

NUMCOLORS

1. 如果设备的色彩深度不超过 8位/像素点,返回设备的色彩数值
2. 如果设备的色彩深度超过 8位/像素点,返回 1

ASPECTX

用于画线的设备像素的相对宽度

ASPECTY

用于画线的设备像素的相对高度

ASPECTXY

用于画线的设备像素的对角线宽度

PDEVICESIZE

保留

CLIPCAPS

1. 显示设备支持剪切性能的标志
2. 如果设备可剪切为一个矩形,则为 1,否则为 0

SIZEPALETTE

1. 系统调色板中的入口数目
2. 只有当设备驱动器在 RASTERCAPS 索引中设置 RC_PALETFE 标志时该索引值才是有效的
3. 该索引值只能用于 16 位 Windows 的驱动器

NUMRESERVED

1. 系统调色板中保留的入口数目
2. 只有当设备驱动器在 RASTERLAP 索引中设置 RC_PALETFE 标志时该索引值才是有效的
3. 该索引值只能用于 16 位 Windows 的驱动器

COLORRES

1. 设备的实际颜色分辨率(位/像素)
2. 只有当设备驱动器在 RASTERLAP 索引中设置 RC_PALETFE 标志时该索引值才是有效的
3. 该索引值只能用于 16 位 Windows 的驱动器

PHYSICALWIDTH

对于打印设备:设备单位的物理页面的宽度。例如一个在 8.5 * 11 纸上设置为 600dpi 的打印机的设备物理单位宽度值为 5100,注意物理页面总是大于可打印的页面面积

PHYSICALHEIGHT

对于打印设备:设备单位的物理页面的高度。例如一个在 8.5 * 11 纸上设置为 600dpi 的打印机的设备物理单位高度值为 6600,注意物理页面总是大于可打印的页面面积

PHYSICALOFFSETX

对于打印设备:从物理页面左边到打印页面左边的距离。例如一个在 8.5 * 11 纸上设置为 600dpi 的打印机,不能在超出左边 0.25 英寸的地方打印,且有一个 150 设备单位的水平物理位移

PHYSICALOFFSETY

对于打印设备:从物理页面上面到打印页面上边的距离。例如一个在 8.5 * 11 纸上设置为 600dpi 的打印机,不能在超出上边 0.5 英寸的地方打印,且有一个 300 设备单位的垂直物理位移

VREFRESH

对于显示设备:
1. 设备的当前垂直刷新率(循环次数/秒,Hz)
2. 0 或 1 代表显示硬件的默认刷新率,此默认刷新率通常通过设置显卡或主板的跳线来改变,或通过一个非显示函数(比如 ChangeDisplaySettings) 的配置程序来设置

SCALINGFACTORX

打印机 x 轴的比例系数

SCALINGFACTORY

打印机 y 轴的比例系数

BLTALIGNMENT

1. 首选的水平绘图调整(表示为像素的倍数)
2. 对于最佳性能的绘图操作,窗口水平绘图应该是调整到此值的倍数

SHADEBLENDCAPS

该值用于指定显示设备的阴影和混合性能:

SB_CONST_ALPHA

处理 BLENDFUNCTION 结构中的 SourceConstantAlpha 元素,并通过 AlphaBlend 函数中的 blendFunction 参数来指定

SB_GRAD_RECT

调用 GradientFill 函数填充矩形

SB_GRAD_TRI

调用 GradientFill 函数填充三角形

SB_NONE

设备不支持这些特性

SB_PIXEL_ALPHA

调用 AlphaBlend 函数处理每一个像素 Alpha

SB_PREMULT_ALPHA

调用 AlphaBlend 函数对 Alpha 进行预乘

RASTERCAPS

该值用于指定显示设备的光栅性能:

RC_BANDING

需要联合支持

RC_BITBLT

支持传送位图

RC_BITMAP64

支持大于 64K 的位图

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

保留,但必须为 0

TC_SCROLLBLT

不支持用位快传递来滚动(注意,这可能事与愿违)

COLORMGMTCAPS

该值用于指定显示设备颜色管理的性能:

CM_CMYK_COLOR

设备可以接受 CMYK 色彩空间的 ICC 色彩配置文件

CM_DEVICE_ICM

设备可以在任意的设备驱动程序或设备本身执行的 ICM

CM_GAMMA_RAMP

设备支持 GetDeviceGammaRamp 函数和 SetDeviceGammaRamp 函数

CM_NONE

设备不支持 ICM



返回值:

1. 返回 nIndex 参数指定项的值;

2. 如果 nIndex 参数是 BITSPIXEL, 且设备是具有 15bpp 或 16bpp,返回值是 16。


备注:

1. 如果 nIndex 参数的值是 SHADEBLENDCAPS:

  • 对于打印设备:GetDeviceCaps 函数返回任何打印机的报告
  • 对于显示设备:所有混合操作都支持,除了 SB_NONE,唯一的返回值是 SB_CONST_ALPHA 和 SB_PIXEL_ALPHA,这表明这些操作是否被加速


2. 在多显示器系统中,如果 hdc 是台式机,GetDeviceCaps 函数返回主显示器的功能。如果你想为其他显示器的信息,则必须使用多显示器的 API 函数或调用 CreateDC 函数得到一个 hdc 指定显示器的设备环境。

注意,一般显示 1 是主显示器,但并非总是如此。

3. GetDeviceCaps 提供了以下六个索引值为打印设备转义符:

索引值

打印设备转义符

PHYSICALWIDTH

GETPHYSPAGESIZE

PHYSICALHEIGHT

GETPHYSPAGESIZE

PHYSICALOFFSETX

GETPRINTINGOFFSET

PHYSICALOFFSETY

GETPHYSICALOFFSET

SCALINGFACTORX

GETSCALINGFACTOR

SCALINGFACTORY

GETSCALINGFACTOR


4. 注意:

  • GetDeviceCaps 函数获得的信息来源于显示驱动程序。
  • 如果显示驱动程序拒绝提供任何信息,GetDeviceCaps 函数则通过计算固定数据得到信息。
  • 如果显示驱动程序报告无效信息,GetDeviceCaps 函数返回无效信息。
  • 此外,如果显示驱动拒绝报告信息,GetDeviceCaps 函数可能计算不正确的信息,因为它假设是固定的 DPI(每英寸点数 96)或固定的大小(取决于显示驱动程序是否提供)。
  • 不幸的是,实现在 Windows 显示驱动程序模型(WDDM)(在 Windows Vista 中引入)的显示驱动程序导致 GDI 拿不到信息,所以 GetDeviceCaps 函数必须通过计算得到信息。
提示
郴维网为您提供各类专业服务:
软件开发,电脑配件销售,WIFI路由器销售,上门电脑维修,上门安装系统,系统安装,软、硬件安装,电脑除尘清灰,显示器维修,WIFI安装调试,服务器维护,数据恢复,密码破解,网络布线,网络检修,打印机维修,打印机加碳粉,苹果电脑安装系统,苹果电脑安装双系统,监控安装维护,电脑外包,笔记本电脑维修,餐饮、美容行业软件安装 等。。。。。。
点击次数:1296 更新时间:2017-5-23 10:23:12  【打印此页

上一条:PolyPolyline

下一条:PolyBezier

关键词推荐:郴州电脑城 郴州电脑维修公司 维修电脑公司 郴州软件开发 上门电脑维修 上门安装系统 笔记本电脑维修 郴州打印机维修 打印机加碳粉 电脑安装双系统 苹果电脑双系统 液晶显示器维修 联想笔记本维修 联想笔记本维修电话 戴尔笔记本维修电话 郴州戴尔笔记本维修 戴尔笔记本郴州维修点 华硕笔记本维修点 郴州华硕笔记本维修 郴州笔记本上网维修