点击或拖拽改变大小

PrintingDevice.DeviceCapabilities 方法

X#
获取有关打印设备功能的信息。

命名空间:  XSharp.VO.SDK
程序集:  XSharp.VOGUIClasses (在 XSharp.VOGUIClasses.dll 中) 版本:2.22 GA
语法
 VIRTUAL METHOD DeviceCapabilities(
	wCapability
) AS USUAL CLIPPER
查看代码

参数

wCapability (Optional)
类型:__Usual
要查询的功能,由Windows API设备功能常量指定。例如,您可以指定:'DC_PAPERS'
如果省略,将使用默认功能。

返回值

类型:__Usual
一个包含 X# 动态数组或WORD的常规变量。由常量 CAPABILITY_NOT_AVAILABLE 表示的值表示检索值失败。
返回值根据 kCapability 的不同而不同。
请参考 Windows SDK 主题 DeviceCapabilites 以获取返回值。
如果 SDK 指示返回值是一个数组或点结构,那么返回值将包含一个 VO 动态数组;否则,它将包含一个 word。
备注
这个方法提供了有关打印设备对象的功能的信息。
示例
这是一个 ListBox FillUsing 方法的示例,用于使用包含可用纸张大小的二维数组填充列表框。第一维包含显示值,第二维包含返回值。
X#
 1SELF:oPrint //假定是一个Printer对象
 2
 3METHOD FillPaperSizesListBox() CLASS; MyPrintReportWindow
 4    LOCAL aDisplayValues, aReturnValues, aListBoxValues := {} AS ARRAY
 5    LOCAL i, wALen AS DWORD
 6
 7    aDisplayValues  := SELF:oPrint:PrintingDevice:DeviceCapabilities(DC_PAPERNAMES)
 8    aReturnValues   := SELF:oPrint:PrintingDevice:DeviceCapabilities(DC_PAPERS)
 9    wALen           := ALen(aDisplayValues)
10
11    FOR i := 1 UPTO wALen
12        aAdd(aListBoxValues, {aDisplayValues[i], aReturnValues[i]})
13    NEXT
14
15    RETURN aListBoxValues
这个示例创建一个Printer对象,使用默认设备驱动程序。查询并显示各种设备功能。
X#
 1LOCAL uValue AS USUAL
 2LOCAL oP, oPD AS OBJECT
 3// 使用默认设备创建打印机对象并
 4// 获取对PrintingDevice对象的引用
 5oP := Printer{}
 6oPD := oP:PrintingDevice
 7// 列出可用纸张大小的名称
 8uValue := oPD:DeviceCapabilities(DC_PAPERNAMES)
 9QOut("Show "+"DC_PAPERNAMES")
10ShowValue(uValue)
11InKey(0)
12// 列出可用纸张的名称
13uValue := oPD:DeviceCapabilities(DC_PAPERNAMES)
14QOut("Show "+"DC_PAPERNAMES")
15ShowValue(uValue)
16InKey(0)
17// 销毁打印机对象(回收GDI资源)
18oP:Destroy()
19
20FUNCTION ShowValue(uValue)
21    IF IsArray(uValue)
22        AEval(uValue, {|u| ShowValue(u)});
23        // 递归,直到找到单个元素
24        ELSEIF IsNumeric(uValue) .AND.;
25        uValue = CAPABILITY_NOT_AVAIALBLE
26        QOut ("Device capability not available from driver")
27    ELSE
28        QOut(uValue)
29    ENDIF
参见