CWnd::GetDCEx

CDC* GetDCEx( CRgn* prgnClip, DWORD flags );

返回值:如果函数调用成功,则返回指定窗口的设备环境;否则返回NULL。

参数:
prgnClip标识了一个裁剪区域,可能与客户窗口的可视区域组合。
flags可以是下列值之一:
·DCX_CACHE由缓存而不是OWNDC或CLASSDC窗口返回一个设备环境。该标志覆盖CS_OWNDC和CS_CLASSDC。
·DCX_CLIPCHILDREN不包括此CWnd窗口下的所有子窗口的可见区域。
·DCX_CLIPSIBLINGS不包括此CWnd窗口之上的所有兄弟窗口的可见区域。
·DCX_EXCLUDERGN在返回的设备环境的可见区域中不包括prgnClip标识的裁剪区域。
·DCX_INTERSECTRGN返回的设备环境的可见区域与prgnClip所标识的裁剪区域重叠。
·DCX_LOCKWINDOWUPDATE即使调用了会影响此窗口的LockWindowUpdate也允许在窗口内绘图。这个值用于在跟踪时绘图。
·DCX_PARENTCLIP使用父窗口的可见区域并忽略父窗口的WS_CLIPCHILDR- EN和WS_PARENTDC风格。这个值将设备环境的原点设为CWnd窗口的左上角。
·DCX_WINDOW返回与窗口矩形而不是客户矩形相对应的设备环境。

说明:
这个函数获得CWnd窗口的设备环境句柄。这个设备环境可以在随后的GDI函数中使用,用于在客户区中绘图。
这个函数是GetDC函数的扩展,使应用程序能够更多地控制一个窗口的设备环境如何或是否被裁剪。
除非设备环境属于一个窗口类,否则在绘图后必须调用ReleaseDC成员函数以释放设备环境。由于在同一时刻仅有五个公用的设备环境可供使用,因此如果释放设备环境时失败,则可能导致其它应用程序不能使用设备环境。
为了获得在缓存中的设备环境,应用程序必须指定DCX_CACHE。如果没有指定DCX_CACHE,并且窗口既不是CS_OWNDC也不是CS_CLASSDC,则这个函数返回NULL。
如果在注册窗口类的时候在WNDCLASS结构中指定了CS_CLASSDC,CS_OWNDC或CS_PARENTDC风格,则GetDCEx将返回具有指定特征的设备环境。
有关这些特征的更多信息参见“Win32 SDK”文档中WNDCLASS结构的描述。

请参阅:
CWnd::BeginPaint, CWnd::GetDC, CWnd::GetWindowDC, CWnd::ReleaseDC, ::GetDCEx