drvStrokeAndFillPath 函数 (winddi.h)
DrvStrokeAndFillPath 函数笔划 (大纲) 并同时填充路径。
语法
BOOL DrvStrokeAndFillPath(
[in, out] SURFOBJ *pso,
[in, out] PATHOBJ *ppo,
[in] CLIPOBJ *pco,
[in, optional] XFORMOBJ *pxo,
[in] BRUSHOBJ *pboStroke,
[in] LINEATTRS *plineattrs,
[in] BRUSHOBJ *pboFill,
[in] POINTL *pptlBrushOrg,
[in] MIX mixFill,
[in] FLONG flOptions
);
参数
[in, out] pso
指向描述要绘制的图面的 SURFOBJ 结构的指针。
[in, out] ppo
指向描述要填充的路径的 PATHOBJ 结构的指针。 PATHOBJ_Xxx 服务例程用于枚举构成路径的线条、贝塞尔曲线和其他数据。
[in] pco
指向 CLIPOBJ 结构的指针。 CLIPOBJ_Xxx 服务例程用于将 剪辑区域 枚举为一组矩形。
[in, optional] pxo
指向绘制几何宽线时所需的 XFORMOBJ 结构的指针。 它指定将世界坐标转换为设备坐标的转换。 这是必需的,因为路径以设备坐标提供,但几何宽线实际上在世界坐标中加宽。 可以查询 XFORMOBJ 以了解转换是什么。
[in] pboStroke
指向 BRUSHOBJ 结构的指针,该结构指定在抚摸路径时要使用的画笔。
[in] plineattrs
指向 LINEATTRS 结构的指针,该结构描述要绘制的线条的属性。
[in] pboFill
指向 BRUSHOBJ 结构的指针,该结构指定填充路径时要使用的画笔。
[in] pptlBrushOrg
指向 POINTL 结构的指针,该结构指定两个画笔的画笔原点。
[in] mixFill
定义要用于画笔的前景和背景光栅操作的混合模式。 有关混合模式的详细信息,请参阅备注。
[in] flOptions
指定FP_WINDINGMODE(表示应执行绕组模式填充)或FP_ALTERNATEMODE,表示应执行交替模式填充。 应忽略所有其他标志。 有关这些模式的详细信息,请参阅 路径填充模式。
返回值
如果驱动程序能够填充路径,则返回值为 TRUE 。 否则,如果 GDI 应改为填充路径,则返回值为 FALSE。 如果发生错误,则返回值为DDI_ERROR,并记录错误代码。
注解
如果使用宽线进行抚摸,则必须减少填充区域才能进行补偿。
如果路径或剪裁过于复杂,设备无法处理,驱动程序可以返回 FALSE ;在这种情况下,GDI 将转换为更简单的调用。 例如,如果设备驱动程序在 DEVINFO 结构的 flGraphicsCaps 成员中设置了GCAPS_BEZIERS标志,然后接收具有 Bezier 曲线的路径,则它可以返回 FALSE;然后,GDI 会将贝塞尔曲线转换为线条,并再次调用 DrvStrokeAndFillPath。 如果设备驱动程序再次返回 FALSE ,GDI 将进一步简化调用,调用 DrvStrokePath 和 DrvFillPath 或 DrvBitBlt,具体取决于组成路径的行的混合和宽度。
混合模式定义传入模式应如何与设备图面上已有的数据混合。 MIX 数据类型由两个二进制光栅操作组成, (ROP2) 打包到单个 ULONG 中的值。 最低顺序字节定义前台光栅操作;下一个字节定义背景光栅操作。 有关光栅操作代码的详细信息,请参阅Microsoft Windows SDK文档。
要求
目标平台 | 桌面 |
标头 | winddi.h (包括 Winddi.h) |