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可用 |