WNDOBJ 结构 (winddi.h)

WNDOBJ 结构允许驱动程序跟踪窗口的位置、大小和可见客户端区域更改。

语法

typedef struct _WNDOBJ {
  CLIPOBJ coClient;
  PVOID   pvConsumer;
  RECTL   rclClient;
  SURFOBJ *psoOwner;
} WNDOBJ, *PWNDOBJ;

成员

coClient

指定描述窗口客户端区域的 CLIPOBJ 结构。 如果 iDComplexity 为DC_RECT并且 rclBounds 中的左边缘大于或等于右边缘,或者上边缘大于或等于底部边缘,则客户端区域不可见。

pvConsumer

指向驱动程序定义的值的指针,该值标识此特定 WNDOBJ 结构。 可以通过调用 WNDOBJ_vSetConsumer 函数来设置此值。

rclClient

指定一个 RECTL 结构,该结构以屏幕坐标描述窗口的工作区。 此矩形是右下角独占的,这意味着不包括该区域的下边缘和右侧边缘。

psoOwner

指向在创建此 WNDOBJ 时传递给 EngCreateWnd 的 SURFOBJ 结构的指针。

注解

可以通过调用 WNDOBJ_cEnumStartWNDOBJ_bEnum 函数来枚举可见的客户端区域。

驱动程序可以通过调用 WNDOBJ_vSetConsumer 函数将其自己的数据与 WNDOBJ 关联。

作为加速器,驱动程序可以访问 WNDOBJ 的公共成员。 保证这些公共成员仅在 EngCreateWnd 函数中提供给 GDI 的驱动程序回调例程的上下文中或给定 WNDOBJ 的函数中保持不变。

驱动程序应使用 psoOwner 指向的 SURFOBJ 来检索与 WNDOBJ 相关的特定于驱动程序的状态(例如驱动程序的 PDEV 句柄),而不是维护全局变量。

要求

要求
Header winddi.h (包括 Winddi.h)

另请参阅

CLIPOBJ

EngCreateWnd

SURFOBJ

WNDOBJCHANGEPROC

WNDOBJ_bEnum

WNDOBJ_cEnumStart

WNDOBJ_vSetConsumer