MzDDrawOverlay类参考
对DirectDraw的Overlay的封装
更多...
#include <MzDDrawOverlay.h>
所有成员的列表。
公有成员 |
| HDC | BeginDraw () |
| | 获得Overlay对应的HDC
|
| void | Clear () |
| | 将内部分配的资源释放,释放后,需要重新调用Init,否则Overlay不可用
|
| void | EndDraw (bool flip=true) |
| | 画图结束解除对Overlay的锁定
|
| void | Flip () |
| | 如果在Init中指定了使用后备缓冲,将后备缓冲显示出来
|
| BOOL | GetExtendedProperty_MzDDrawOverlay (int nPropertyType, void *pValue, int nBufSize) |
| | 获取或设置对象的扩展属性值
|
| POINT | GetPosition () |
| | 获得Overlay当前左上角位置
|
| void | HideOverlay () |
| | 隐藏Overlay
|
| bool | Init (HWND hWnd, int x, int y, int width, int height, COLORREF colorKey, BYTE foreAlpha, BYTE backAlpha, bool needBackBuffer, OverlayPixelFormat pixFmt=PixFmtRGB565) |
| | 创建并初始化一个DirectDraw的Overlay表面
|
| bool | IsVisible () |
| | Overlay是否可见,可见状态下透明度可能为0.
|
| bool | LockData (DDSURFACEDESC *pDDSD) |
| | 获得Overlay当前的各项参数
|
| | MzDDrawOverlay () |
| | 构造函数,在没有调用Init之前,不会实际创建Overlay
|
| BOOL | SetExtendedProperty_MzDDrawOverlay (int nPropertyType, void *pValue, int nBufSize) |
| | 获取或设置对象的扩展属性值
|
| void | SetPosition (int x, int y) |
| | 设置Overlay当前左上角位置,如果设置位置后,Overlay有区域超出屏幕范围,会导致设置失败或者图像不正确,对于Init调用也是这样
|
| void | SetTransparency (int iValue=15) |
| | 可动态设置前景区域的透明度
|
| void | ShowOverlay () |
| | 显示Overlay
|
| bool | UnLockData (bool flip=true) |
| | 画图结束解除对Overlay的锁定
|
| | ~MzDDrawOverlay () |
| | 析构函数,自行释放有关的资源
|
保护成员 |
| void | RestoreAllSurfaces () |
保护属性 |
| HDC | m_dstDC |
| LPDIRECTDRAW | m_lpDDraw |
| LPDIRECTDRAWSURFACE | m_lpDDSBack |
| LPDIRECTDRAWSURFACE | m_lpDDSForDC |
| LPDIRECTDRAWSURFACE | m_lpDDSOverlay |
| LPDIRECTDRAWSURFACE | m_lpDDSPrimary |
| RECT | m_rcDst |
| RECT | m_rcSrc |
| bool | m_visible |
| int | m_x |
| DWORD | m_xPositionAlignment |
| int | m_y |
| DDOVERLAYFX | ovfx |
详细描述
对DirectDraw的Overlay的封装
使用这个类可以较方便的实现对DirectDraw的Overlay的操作
构造及析构函数文档
| MzDDrawOverlay::MzDDrawOverlay |
( |
|
) |
|
构造函数,在没有调用Init之前,不会实际创建Overlay
| MzDDrawOverlay::~MzDDrawOverlay |
( |
|
) |
|
成员函数文档
| HDC MzDDrawOverlay::BeginDraw |
( |
|
) |
|
获得Overlay对应的HDC
获得Overlay对应的HDC,此时Overlay会被锁定,可调用各种WindowsAPI对HDC进行绘图操作,使用方便,但速度没有LockData的方式快 BeginDraw必须与EndDraw成对调用,否则BeginDraw可能会返回NULL,两者之间调用LockData也会失败
- 返回:
- 返回获得的HDC
| void MzDDrawOverlay::Clear |
( |
|
) |
|
将内部分配的资源释放,释放后,需要重新调用Init,否则Overlay不可用
| void MzDDrawOverlay::EndDraw |
( |
bool |
flip = true |
) |
|
画图结束解除对Overlay的锁定
- 参数:
-
| flip | [in] 如果在Init中指定了使用后备缓冲,可以选择是否结束后备缓冲的绘制,将后备缓冲显示出来 |
| void MzDDrawOverlay::Flip |
( |
|
) |
|
如果在Init中指定了使用后备缓冲,将后备缓冲显示出来
| BOOL MzDDrawOverlay::GetExtendedProperty_MzDDrawOverlay |
( |
int |
nPropertyType, |
|
|
void * |
pValue, |
|
|
int |
nBufSize | |
|
) |
| | |
获取或设置对象的扩展属性值
- 参数:
-
| nPropertyType | 要获取或设置的属性类型 |
| pValue | 要获取或设置的属性值的指针 |
| nBufSize | pValue所指向的变量的size大小(单位: 字节) |
- 返回:
- 操作是否成功
| POINT MzDDrawOverlay::GetPosition |
( |
|
) |
|
| void MzDDrawOverlay::HideOverlay |
( |
|
) |
|
| bool MzDDrawOverlay::Init |
( |
HWND |
hWnd, |
|
|
int |
x, |
|
|
int |
y, |
|
|
int |
width, |
|
|
int |
height, |
|
|
COLORREF |
colorKey, |
|
|
BYTE |
foreAlpha, |
|
|
BYTE |
backAlpha, |
|
|
bool |
needBackBuffer, |
|
|
OverlayPixelFormat |
pixFmt = PixFmtRGB565 | |
|
) |
| | |
创建并初始化一个DirectDraw的Overlay表面
注意:不要在发生锁屏背景灯熄灭后,使用Init和Clear,否则会无法唤醒屏幕(或者其他不正常的现象),锁屏消息是 WM_MZ_SHELL_ENTRY_LOCKPHONE 锁屏后可以设置Overlay的透明度,最好设置为0,否则在系统锁屏界面会看到Overlay的内容
- 参数:
-
| hWnd | [in] 指定Overlay所在应用的窗口,MzDDrawOverlay只将其视为非全屏的窗口 |
| x | [in] Overlay左上角的横坐标 |
| y | [in] Overlay左上角的纵坐标 |
| width | [in] Overlay的宽度 |
| height | [in] Overlay的高度 |
| colorKey | [in] 设置一个颜色,Overlay上填充这个颜色的地方,都将被视为背景区域,否则为前景区域 |
| foreAlpha | [in] 前景区域的透明度,0是全透,15是不透明 |
| backAlpha | [in] 背景区域的透明度,0是全透,15是不透明 |
| needBackBuffer | [in] 是否启用后备缓冲,MzDDrawOverlay只创建一个后背缓冲,或者不创建 |
| pixFmt | [in] 指定Overlay的像素格式 |
- 返回:
- 是否创建并初始化成功
| bool MzDDrawOverlay::IsVisible |
( |
|
) |
|
Overlay是否可见,可见状态下透明度可能为0.
| bool MzDDrawOverlay::LockData |
( |
DDSURFACEDESC * |
pDDSD |
) |
|
获得Overlay当前的各项参数
Overlay会被锁定,可通过 DDSURFACEDESC 结构体中的 lpSurface 获得表面对应的数据的内存,直接对内存操作,比用HDC画图快
- 参数:
-
| pDDSD | [out] 获得的参数将被存放在pDDSD所指向的结构体中,有关 DDSURFACEDESC 结构体请参考DirectDraw的相关注释和文档 |
- 返回:
- 是否锁定成功
| void MzDDrawOverlay::RestoreAllSurfaces |
( |
|
) |
[protected] |
| BOOL MzDDrawOverlay::SetExtendedProperty_MzDDrawOverlay |
( |
int |
nPropertyType, |
|
|
void * |
pValue, |
|
|
int |
nBufSize | |
|
) |
| | |
获取或设置对象的扩展属性值
- 参数:
-
| nPropertyType | 要获取或设置的属性类型 |
| pValue | 要设置的属性值的指针 |
| nBufSize | pValue所指向的变量的size大小(单位: 字节) |
- 返回:
- 操作是否成功
| void MzDDrawOverlay::SetPosition |
( |
int |
x, |
|
|
int |
y | |
|
) |
| | |
设置Overlay当前左上角位置,如果设置位置后,Overlay有区域超出屏幕范围,会导致设置失败或者图像不正确,对于Init调用也是这样
| void MzDDrawOverlay::SetTransparency |
( |
int |
iValue = 15 |
) |
|
| void MzDDrawOverlay::ShowOverlay |
( |
|
) |
|
| bool MzDDrawOverlay::UnLockData |
( |
bool |
flip = true |
) |
|
画图结束解除对Overlay的锁定
- 参数:
-
| flip | [in] 如果在Init中指定了使用后备缓冲,可以选择是否结束后备缓冲的绘制,将后备缓冲显示出来 |
- 返回:
- 是否成功
成员数据文档
该类的文档由以下文件生成: