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 将进一步简化调用,调用 DrvStrokePathDrvFillPathDrvBitBlt,具体取决于组成路径的行的混合和宽度。

混合模式定义传入模式应如何与设备图面上已有的数据混合。 MIX 数据类型由两个二进制光栅操作组成, (ROP2) 打包到单个 ULONG 中的值。 最低顺序字节定义前台光栅操作;下一个字节定义背景光栅操作。 有关光栅操作代码的详细信息,请参阅Microsoft Windows SDK文档。

要求

   
目标平台 桌面
标头 winddi.h (包括 Winddi.h)

另请参阅

CLIPOBJ

DrvBitBlt

DrvFillPath

DrvStrokePath

LINEATTRS

PATHOBJ

SURFOBJ

XFORMOBJ