### 函数功能

该函数检索指定窗口客户区域或整个屏幕的显示设备上下文环境的句柄，在随后的GDI函数中可以使用该句柄在设备上下文环境中绘图。

### 函数原型

HDC GetDCEx(HWND hWnd, HRGN hrgnClip, DWORD flags)；

### 参数

hWnd：窗口的句柄，该窗口的设备上下文环境将要被检索，如果该值为NULL，则GetDCEx将检索整个屏幕的设备上下文环境。
Windows98、Windows NT 5.0和以后版本：如果该参数为NULL，GetDCEx函数检索首要显示器的设备上下文环境，要得到其他显示器的设备上下文环境使用EnumDisplayMonitors和CreateDC函数。
hrgnCLip：指定一剪切区域，它可以与设备上下文环境的可见区域相结合。
flags：指定如何创建设备上下文环境，可取下列值的组合：
DCX_WINDOW：返回与窗口矩形而不是与客户矩形相对应的设备上下文环境。
DXC_CACHE：从高速缓存而不是从OWNDC或CLASSDC窗口中返回设备上下文环境。从本质上覆盖CS_OWNDC和CS_CLASSDC。
DCX_PARENTCLIP：使用父窗口的可见区域，父窗口的WS_CIPCHILDREN和CS_PARENTDC风格被忽略，并把设备上下文环境的原点，设在由hWnd所标识的窗口的左上角。
DCX_CLIPSIBLINGS：排除hWnd参数所标识窗口上的所有兄弟窗口的可见区域。
DCX_CLIPCHILDREN：排除hWnd参数所标识窗口上的所有子窗口的可见区域。
DCX_NORESETATTRS：当设备上下文环境被释放时，并不重置该设备上下文环境的特性为缺省特性。
DCX_LOCKWINDOWUPDATE：即使在排除指定窗口的LockWindowUpdate函数调用有效的情况下也许会绘制，该参数用于在跟踪期间进行绘制。
DCX_EXCLUDERGN：从返回设备上下文环境的可见区域中排除由hrgnClip指定的剪切区域。
DCX_INTERSECTRGN：对hrgnClip指定的剪切区域与返回设备描述的可见区域作交运算。
DCX_VALIDATE：当与DCX_INTERSECTUPDATE一起指定时，致使设备上下文环境完全有效，该函数与DCX_INTERSECTUPDATE和DCX_VALIDATE一起使用时与使用BeginPaint函数相同。

### 返回值

如果成功，返回值是指定窗口设备上下文环境的句柄，如果失败，返回值为Null。HWnd参数的一个无效值会使函数失败。
Windows NT：若想获得更多错误信息，请调用GetLastError函数。
注释：除非显示设备上下文环境属于一个窗口类，在画图操作之后一定要调用ReleaseDC函数释放设备上下文环境。因为只有5个公用设备上下文环境在任何给定的时间都有效。释放设备上下文环境失败导致其他应用程序不能访问该设备上下文环境。
如果当窗口类注册时，CS_CLASSDC、CS_OWNDC或CS_PARENTDC被指定为WNDCLASS结构的风格，那么该函数返回一个属于该窗口类的设备上下文环境。

### 速查

Windows NT：3.1及以上版本；Windows：95及以上版本；Windows CE：不支持；头文件：winuser.h；库文件：user32.lib。