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) |