勇芳软件工作室.汉化:  Device Contexts > Device Contexts Functions >

GetDeviceCaps

Previous pageReturn to chapter overviewNext page

描述

 

GetDeviceCaps功能检索指定设备的设备特定信息。

 

C++ 语法

 

int GetDeviceCaps(

__in HDC hdc,

__in int nIndex

);

 

PowerBASIC 语法

 

FUNCTION GetDeviceCaps ( _

BYVAL hdc AS DWORD, _

BYVAL nIndex AS LONG _

) AS LONG

 

参数

 

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

系统调色板中的条目数。该索引仅在设备驱动程序设置RASTERCAPS索引中的RC_PALETTE位且仅当驱动程序与16位Windows兼容时可用。

NUMRESERVED

系统调色板中保留的条目数。该索引仅在设备驱动程序设置RASTERCAPS索引中的RC_PALETTE位且仅当驱动程序与16位Windows兼容时可用。

COLORRES

器件的实际颜色分辨率,以像素为单位。该索引仅在设备驱动程序设置RASTERCAPS索引中的RC_PALETTE位且仅当驱动程序与16位Windows兼容时可用。

PHYSICALWIDTH

对于打印设备:物理页面的宽度,以设备为单位。例如,设置为在8.5-x11英寸纸张上以600 dpi打印的打印机的物理宽度值为5100设备单位。请注意,物理页面几乎总是大于页面的可打印区域,而不会更小。

PHYSICALHEIGHT

对于打印设备:物理页面的高度,以设备为单位。例如,设置为以8.5×11英寸纸张打印600 dpi打印机的物理高度值为6600设备单位。请注意,物理页面几乎总是大于页面的可打印区域,而不会更小。

PHYSICALOFFSETX

对于打印设备:以物理页面的左边缘到可打印区域的左边缘的距离,以设备为单位。例如,设置为以600 dpi打印的8.5×11英寸纸张的打印机不能在最左边的0.25英寸纸张上打印,具有150个设备单位的水平物理偏移。

PHYSICALOFFSETY

对于打印设备:以物理页面的顶部边缘到可打印区域的顶部边缘的距离,以设备为单位。例如,设置为以600 dpi打印的8.5×11英寸纸张的打印机不能在最上面的0.5英寸纸张上打印,具有300个设备单位的垂直物理偏移。

VREFRESH

Windows NT / 2000 / XP/ VISTA / Windows 7的:对于显示设备:设备的当前垂直刷新率,以秒为单位(Hz)。

 

垂直刷新率为0或1表示显示硬件的默认刷新率。此默认速率通常由显示卡或计算机主板上的开关或不使用显示功能的配置程序(如ChangeDisplaySettings)设置。

SCALINGFACTORX

打印机x轴的缩放系数。

SCALINGFACTORY

打印机y轴的缩放因子。

BLTALIGNMENT

Windows NT / 2000 / XP/ VISTA / Windows 7的:首选水平绘图对齐,表示为像素的倍数。为了获得最佳绘图性能,窗口应该水平对齐到该值的倍数。值为零表示设备被加速,并且可以使用任何对齐。

SHADEBLENDCAPS

Windows 98 / Me,Windows 2000 / XP/ VISTA / Windows 7的:表示设备的阴影和混合功能的值。有关进一步的意见,请参阅备注。

 

SB_CONST_ALPHA

处理由AlphaBlend函数的混合函数参数引用的BLENDFUNCTION结构的SourceConstantAlpha成员。

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

能够支持大于64 KB的位图。

RC_DI_BITMAP

能够支持SetDIBitsGetDIBits功能。

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/ VISTA / Windows 7的:表示设备的颜色管理功能的值。

 

CM_CMYK_COLOR

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

CM_DEVICE_ICM

设备可以在设备驱动程序或设备本身上执行ICM。

CM_GAMMA_RAMP

设备支持GetDeviceGammaRampSetDeviceGammaRamp

CM_NONE

设备不支持ICM。

 

返回值

 

返回值指定所需项目的值。

 

当nIndex为BITSPIXEL,设备为15bpp或16bpp时,返回值为16。

 

备注

 

不要调用此方法从XPSDrv驱动程序获取打印机功能。而是使用Windows驱动开发套件中描述的DrvDeviceCapabilities功能。

 

参数nIndex为SHADEBLENDCAPS时:

 

·对于打印机,GetDeviceCaps返回打印机报告的任何内容。
·对于显示设备,可以使用所有混合操作;除了SB_NONE之外,唯一的返回值是SB_CONST_ALPHA和SB_PIXEL_ALPHA,它们指示这些操作是否加速。
·在多监视器系统上,如果hDC是桌面,则GetDeviceCaps返回主监视器的功能。

 

GetDeviceCaps提供以下六个索引代替打印机转义。

 

指数

更换打印机逃生

PHYSICALWIDTH

GETPHYSPAGESIZE

PHYSICALHEIGHT

GETPHYSPAGESIZE

PHYSICALOFFSETX

GETPRINTINGOFFSET

PHYSICALOFFSETY

GETPHYSICALOFFSET

SCALINGFACTORX

GETSCALINGFACTOR

SCALINGFACTORY

GETSCALINGFACTOR

 

引用文件 #INCLUDE Once

 

WinGdi.inc(包括Windows.inc)