|
|
VB声明 |
Declare Function GetDCEx Lib "user32" Alias
"GetDCEx" (ByVal hwnd As Long, ByVal hrgnclip As Long, ByVal fdwOptions As Long)
As Long |
说明 |
为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项 |
返回值 |
Long,执行成功为指定窗口设备场景句柄。出错则为0 |
参数表 |
参数 |
类型及说明 |
hwnd |
Long,窗口句柄 |
hrgnclip |
Long,窗口剪裁区 |
fdwOptions |
Long,标志字。根据下列常数设置各位: |
DCX_CACHE |
不管窗口类的样式,从windows缓存获取设备场景 |
DCX_CLIPCHILREN |
所有可见的子窗口区都要从DC的剪裁区中排除 |
DCX_CLIPSIBLINGS |
窗口hWnd上的所有可见兄弟窗口都要从DC的剪裁区中排除 |
DCX_EXCLUDERGN |
从DC剪裁区中排除由hrgnclip指定的区域 |
DCX_EXCLUDEUPDATE |
从设备场景剪裁区中排除刷新区域 |
DCX_INTERSECTRGN |
由hrgnclip指定的区域与设备场景剪裁区相交 |
DCX_INTERSECTUPDATE |
指定区域与设备场景刷新区域相交 |
DCX_LOCKWINDOWUPDATE |
该标志为允许向窗口绘图,即使它由于LockWindowUpdate的调用被锁住 |
DCX_NORESETATTRS |
设备场景释放后不被重置为默认状态 |
DCX_PARENTCLIP |
放弃CS_PARENTDC类样式设置。DC的起点设为hWnd窗口的左上角 |
DCX_WINDOW |
A device context is returned for the entire window rectangle rather than
just the client area of the window |
DCX_VALIDATE |
Combine with DCX_INTERSECTUPDATE, validates the clipping region |
注解 |
若窗口所属类具有CS_OWNDC,
CS_CLASSDC 或 CS_PARENTDC样式,则获取的设备场景属窗口或类专有。这时,设备场景状态不能从初值修改。vb的窗体和控件通常是这种情况。否则,置DCX_CACHE位以从通用windows缓冲区恢复设备场景。若不置该位,则函数返回0。DC的状态位默认设置。从缓存获取的设备场景用过后要用ReleaseDC函数释放以防止系统死锁,因为windows只有5个缓存DC可用
其他情况参见GetDC函数注解 |
|