GetDeviceCaps 函数 (wingdi.h)
GetDeviceCaps 函数检索指定设备的设备特定信息。
语法
int GetDeviceCaps(
[in] HDC hdc,
[in] int index
);
参数
[in] hdc
DC 的句柄。
[in] index
要返回的项。 此参数的取值可为下列值之一:
索引 | 含义 | ||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
设备驱动程序版本。 | ||||||||||||||||||||||||||||||||||
|
设备技术。 它可以是以下任意一个值。
如果 hdc 参数是增强型图元文件的 DC 的句柄,则设备技术是 指定到 CreateEnhMetaFile 函数的引用设备的技术。 若要确定它是否是增强型图元文件 DC,请使用 GetObjectType 函数。 |
||||||||||||||||||||||||||||||||||
|
物理屏幕的宽度(以毫米为单位)。 | ||||||||||||||||||||||||||||||||||
|
物理屏幕的高度(以毫米为单位)。 | ||||||||||||||||||||||||||||||||||
|
屏幕的宽度(以像素为单位);或 ,对于打印机,页面可打印区域的宽度(以像素为单位)。 | ||||||||||||||||||||||||||||||||||
|
屏幕的高度(以光栅线为单位);对于打印机,页面可打印区域的高度(以像素为单位)。 | ||||||||||||||||||||||||||||||||||
|
每个逻辑英寸沿屏幕宽度的像素数。 在具有多个显示监视器的系统中,此值对于所有监视器都是相同的。 | ||||||||||||||||||||||||||||||||||
|
沿屏幕高度每逻辑英寸的像素数。 在具有多个显示监视器的系统中,此值对于所有监视器都是相同的。 | ||||||||||||||||||||||||||||||||||
|
每个像素的相邻颜色位数。 | ||||||||||||||||||||||||||||||||||
|
颜色平面数。 | ||||||||||||||||||||||||||||||||||
|
特定于设备的画笔数。 | ||||||||||||||||||||||||||||||||||
|
特定于设备的笔数。 | ||||||||||||||||||||||||||||||||||
|
特定于设备的字体数。 | ||||||||||||||||||||||||||||||||||
|
如果设备的颜色深度不超过每像素 8 位,则设备颜色表中的条目数。 对于颜色深度更大的设备,返回 -1。 | ||||||||||||||||||||||||||||||||||
|
用于线条绘制的设备像素的相对宽度。 | ||||||||||||||||||||||||||||||||||
|
用于线条绘制的设备像素的相对高度。 | ||||||||||||||||||||||||||||||||||
|
用于线条绘制的设备像素的对角宽度。 | ||||||||||||||||||||||||||||||||||
|
保留。 | ||||||||||||||||||||||||||||||||||
|
指示设备的剪裁功能的标志。 如果设备可以剪辑为矩形,则为 1。 否则为 0。 | ||||||||||||||||||||||||||||||||||
|
系统调色板中的条目数。 仅当设备驱动程序在 RASTERCAPS 索引中设置RC_PALETTE位时,此索引才有效,并且仅当驱动程序与 16 位 Windows 兼容时才可用。 | ||||||||||||||||||||||||||||||||||
|
系统调色板中的保留条目数。 仅当设备驱动程序在 RASTERCAPS 索引中设置RC_PALETTE位时,此索引才有效,并且仅当驱动程序与 16 位 Windows 兼容时才可用。 | ||||||||||||||||||||||||||||||||||
|
设备的实际颜色分辨率,以每像素位数为单位。 仅当设备驱动程序在 RASTERCAPS 索引中设置RC_PALETTE位时,此索引才有效,并且仅当驱动程序与 16 位 Windows 兼容时才可用。 | ||||||||||||||||||||||||||||||||||
|
对于打印设备:物理页面的宽度(以设备单位为单位)。 例如,设置为在 8.5-x11 英寸纸张上以 600 dpi 打印的打印机的物理宽度值为 5100 设备单位。 请注意,物理页面几乎总是大于页面的可打印区域,并且永远不会更小。 | ||||||||||||||||||||||||||||||||||
|
对于打印设备:物理页面的高度(以设备单位为单位)。 例如,设置为在 8.5 by-11 英寸纸张上以 600 dpi 打印的打印机的物理高度值为 6600 设备单位。 请注意,物理页面几乎总是大于页面的可打印区域,并且永远不会更小。 | ||||||||||||||||||||||||||||||||||
|
对于打印设备:从物理页面的左边缘到可打印区域的左边缘的距离(以设备单位为单位)。 例如,设置为在 8.5 by 11 英寸纸张上以 600 dpi 打印的打印机无法在最左侧的 0.25 英寸纸张上打印,其水平物理偏移量为 150 台设备单位。 | ||||||||||||||||||||||||||||||||||
|
对于打印设备:从物理页面的上边缘到可打印区域的上边缘的距离(以设备单位为单位)。 例如,设置为在 8.5x11 英寸纸张上以 600 dpi 打印的打印机无法在最顶层 0.5 英寸的纸张上打印,其垂直物理偏移量为 300 台设备单位。 | ||||||||||||||||||||||||||||||||||
|
对于显示设备:设备的当前垂直刷新率,以每秒周期 (Hz) 。
垂直刷新率值为 0 或 1 表示显示硬件的默认刷新率。 此默认速率通常由显示器卡或计算机主板上的开关设置,或者由不使用显示功能(如 ChangeDisplaySettings)的配置程序设置。 |
||||||||||||||||||||||||||||||||||
|
打印机 x 轴的缩放因子。 | ||||||||||||||||||||||||||||||||||
|
打印机的 y 轴比例系数。 | ||||||||||||||||||||||||||||||||||
|
首选水平绘制对齐方式,表示为像素的倍数。 为了获得最佳绘制性能,窗口应水平对齐到此值的倍数。 值为零表示设备已加速,并且可以使用任何对齐方式。 | ||||||||||||||||||||||||||||||||||
|
指示设备的着色和混合功能的值。 有关进一步的注释,请参阅备注。
|
||||||||||||||||||||||||||||||||||
|
指示设备的光栅功能的值,如下表所示。
|
||||||||||||||||||||||||||||||||||
|
指示设备的曲线功能的值,如下表所示。
|
||||||||||||||||||||||||||||||||||
|
指示设备的线路功能的值,如下表所示:
|
||||||||||||||||||||||||||||||||||
|
指示设备的多边形功能的值,如下表所示。
|
||||||||||||||||||||||||||||||||||
|
指示设备的文本功能的值,如下表所示。
|
||||||||||||||||||||||||||||||||||
|
指示设备的颜色管理功能的值。
|
返回值
返回值指定所需项的值。
当 nIndex 为 BITSPIXEL 且设备具有 15bpp 或 16bpp 时,返回值为 16。
注解
当 nIndex 为 SHADEBLENDCAPS 时:
- 对于打印机, GetDeviceCaps 返回打印机报告的任何内容。
- 对于显示设备,所有混合操作都可用;除了SB_NONE,唯一的返回值是SB_CONST_ALPHA和SB_PIXEL_ALPHA,这指示这些操作是否已加速。
注意 Display1 通常是主监视器,但并非总是如此。
索引 | 替换了打印机转义 |
---|---|
PHYSICALWIDTH | GETPHYSPAGESIZE |
PHYSICALHEIGHT | GETPHYSPAGESIZE |
PHYSICALOFFSETX | GETPRINTINGOFFSET |
PHYSICALOFFSETY | GETPHYSICALOFFSET |
SCALINGFACTORX | GETSCALINGFACTOR |
SCALINGFACTORY | GETSCALINGFACTOR |
注意GetDeviceCaps 报告显示驱动程序提供的信息。 如果显示驱动程序拒绝报告任何信息, GetDeviceCaps 将基于固定计算计算信息。 如果显示驱动程序报告无效信息, GetDeviceCaps 将返回无效信息。 此外,如果显示驱动程序拒绝报告信息, GetDeviceCaps 可能会计算不正确的信息,因为它假设固定 DPI (96 DPI) 或固定大小 (,具体取决于显示驱动程序提供和未提供) 的信息。 遗憾的是,在 Windows Vista) 中引入的 Windows 显示驱动程序模型 (WDDM) (实现的显示驱动程序会导致 GDI 无法获取信息,因此 GetDeviceCaps 必须始终计算信息。
示例
有关示例,请参阅 准备打印。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | wingdi.h (包括 Windows.h) |
Library | Gdi32.lib |
DLL | Gdi32.dll |