getDCEx 函数 (winuser.h)

GetDCEx 函数检索指定窗口的工作区或整个屏幕的设备上下文 (DC) 句柄。 可以在后续 GDI 函数中使用返回的句柄在 DC 中绘制。 设备上下文是一种不透明的数据结构,其值由 GDI 在内部使用。

此函数是 GetDC 函数的扩展,它使应用程序能够更好地控制在工作区中发生剪辑的方式和是否发生。

语法

HDC GetDCEx(
  [in] HWND  hWnd,
  [in] HRGN  hrgnClip,
  [in] DWORD flags
);

参数

[in] hWnd

要检索其 DC 的窗口的句柄。 如果此值为 NULL则 GetDCEx 将检索整个屏幕的 DC。

[in] hrgnClip

可与 DC 的可见区域组合的剪裁区域。 如果 标志 的值是DCX_INTERSECTRGN或DCX_EXCLUDERGN,则操作系统将拥有该区域的所有权,并在不再需要该区域时自动将其删除。 在这种情况下,成功调用 GetDCEx 后,应用程序不应使用或删除该区域。

[in] flags

指定 DC 的创建方式。 此参数可使用以下一个或多个值。

含义
DCX_WINDOW
返回对应于窗口矩形而不是客户端矩形的 DC。
DCX_CACHE
从缓存返回 DC,而不是 OWNDC 或 CLASSDC 窗口。 实质上覆盖CS_OWNDC和CS_CLASSDC。
DCX_PARENTCLIP
使用父窗口的可见区域。 忽略父级的WS_CLIPCHILDREN和CS_PARENTDC样式位。 原点设置为 由 hWnd 标识的窗口的左上角。
DCX_CLIPSIBLINGS
排除 hWnd 标识的窗口上方所有同级窗口的可见区域。
DCX_CLIPCHILDREN
排除 hWnd 标识的窗口下方所有子窗口的可见区域。
DCX_NORESETATTRS
将忽略此标志。
DCX_LOCKWINDOWUPDATE
即使有 有效 LockWindowUpdate 调用将排除此窗口,也允许绘图。 用于在跟踪期间绘制。
DCX_EXCLUDERGN
hrgnClip 标识的剪辑区域从返回的 DC 的可见区域中排除。
DCX_INTERSECTRGN
由 hrgnClip 标识的剪辑区域与返回的 DC 的可见区域相交。
DCX_INTERSECTUPDATE
保留值;请勿使用。
DCX_VALIDATE
保留值;请勿使用。

返回值

如果函数成功,则返回值是指定窗口 DC 的句柄。

如果函数失败,则返回值为 NULL。 hWnd 参数的值无效将导致函数失败。

注解

除非显示 DC 属于窗口类,否则必须调用 ReleaseDC 函数才能在绘制后释放 DC。 此外,必须从调用 GetDCEx 的同一线程调用 ReleaseDC。 DC 的数量仅受可用内存的限制。

如果CS_CLASSDC、CS_OWNDC或CS_PARENTDC在注册该类时在 WNDCLASS 结构中指定为样式,则函数返回属于窗口类的 DC 的句柄。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 winuser.h (包括 Windows.h)
Library User32.lib
DLL User32.dll

另请参阅

BeginPaint

设备上下文函数

设备上下文概述

GetWindowDC

ReleaseDC

WNDCLASS