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中指定了使用后备缓冲,可以选择是否结束后备缓冲的绘制,将后备缓冲显示出来 |
- 返回:
- 是否成功
成员数据文档
该类的文档由以下文件生成: