drvFillPath 函数 (winddi.h)

DrvFillPath 函数是一个可选的入口点,用于处理闭合路径的填充。

语法

BOOL DrvFillPath(
  [in, out] SURFOBJ  *pso,
  [in]      PATHOBJ  *ppo,
  [in]      CLIPOBJ  *pco,
  [in]      BRUSHOBJ *pbo,
  [in]      POINTL   *pptlBrushOrg,
  [in]      MIX      mix,
  [in]      FLONG    flOptions
);

参数

[in, out] pso

指向定义要绘制的图面的 SURFOBJ 结构的指针。

[in] ppo

指向 PATHOBJ 结构的指针,该结构定义要填充的路径。 提供 PATHOBJ_Xxx 服务例程来枚举构成路径的线条、贝塞尔曲线和其他数据。

[in] pco

指向 CLIPOBJ 结构的指针。 提供 CLIPOBJ_Xxx 服务例程以一组矩形的形式枚举 剪辑区域

[in] pbo

指向 BRUSHOBJ 结构的指针,该结构定义用于填充封闭路径的图案和颜色。 仅当 mix 中指定的填充操作需要使用画笔时,才应取消引用此参数。 例如,如果 mix 设置为 BLACKNESS,则不会定义 pbo ,并且不应取消引用。

[in] pptlBrushOrg

指向 POINTL 结构的指针,该结构定义画笔原点,该原点用于对齐设备上的画笔图案。

[in] mix

定义要用于画笔的前景光栅操作和后台光栅操作的混合模式。 有关混合模式的详细信息,请参阅备注。

[in] flOptions

指定FP_WINDINGMODE(指示应执行缠绕模式填充)或FP_ALTERNATEMODE,指示应执行交替模式填充。 应忽略所有其他标志。 有关这些模式的详细信息,请参阅 路径填充模式

返回值

如果驱动程序能够填充路径,则返回值为 TRUE 。 如果路径或剪辑过于复杂,无法由驱动程序处理,并且应由 GDI 处理,则返回值为 FALSE,并且不会记录错误代码。 如果驱动程序遇到意外错误(例如无法实现画笔),则会DDI_ERROR返回值,并记录错误代码。

注解

GDI 可以调用 DrvFillPath 来填充 设备管理的图面上的路径。 在决定是否调用此函数时,GDI 会将填充要求与 DEVINFO 结构的 flGraphicsCaps 成员中的以下标志进行比较:GCAPS_BEZIERS、GCAPS_ALTERNATEFILL和GCAPS_WINDINGFILL。

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

要求

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

另请参阅

BRUSHOBJ

CLIPOBJ

DEVINFO

DrvStrokeAndFillPath

PATHOBJ

SURFOBJ