WEB开发网
开发学院软件开发VC VC++部件库中浮动菜单部件的解析及应用 阅读

VC++部件库中浮动菜单部件的解析及应用

 2010-08-22 20:48:33 来源:WEB开发网   
核心提示:图象的渐显/渐隐是十分重要的图象效果,广泛运用于图象处理和多媒提娱乐软件,VC++部件库中浮动菜单部件的解析及应用,渐显/渐隐算法设计的最大困难是速度控制,包括定时和快速改变图象中各象素的颜色,peFlags应被置为PC_RESERVED,nStartIndex为lpPaletteColors中将变化的起始表项号,如采

图象的渐显/渐隐是十分重要的图象效果,广泛运用于图象处理和多媒提娱乐软件。渐显/渐隐算法设计的最大困难是速度控制,包括定时和快速改变图象中各象素的颜色。如采用普通的全图扫描算法,则速度较慢,很难真正体现渐显/渐隐效果。

利用Windows(3.x.95/98/NT)操作系统特殊的调色板管理和时间码定时机制能设计出有效的图象渐显/渐隐算法。Windows提供一种被称为调色板动画(paletteanimation)的颜色处理技术,它通过快速改变颜色调色板中所选取的表项中的颜色能模拟颜色的变化。设置时间码,定时调用该技术使图象颜色渐变就能实现图象的渐显和渐隐。

一、调色板动画

在VisualC++中实现调色板动画依赖于MFC类库提供的CPalette类和CDC类中的若干成员函数,其基本步骤如下:

调用CPalette::CreatePalette(LPLOGPALETTElpLogPalette)函数创建逻辑调色板,注意将参数LPLOGPALETTE所指向的各颜色表项结构的peFlags域设置为PC_RESERVED,以防止其它窗口同该调色板匹配颜色。调用CDC::SelectPalette和CDC::RealizePalette函数选择和实现所创建的逻辑调色板;调用CPalette::AnimatePalette函数改变颜色,实现调色板动画;动画完成后应恢复系统调色板。

CPalette::AnimatePalette是其中最关键的函数,其原型如下:

void AnimatePalette( UINT nStartIndex, //起始的表项号 UINT nNumEntries,//变化的表项数 LPPALETTEENTRY lpPaletteColors ); //逻辑调色板表项指针——lpPaletteColors为指向PALETTEENTRY结构的指针,其中存储着逻辑调色板将要更新的颜色信息。PALETTEENTRY结构定义如下:typedef struct tagPALETTEENTRY { // pe
BYTE peRed;
BYTE peGreen;
BYTE peBlue;
BYTE peFlags;
} PALETTEENTRY;

peRed、peGreen、peBlue分别表示逻辑调色板项的R、G、B颜色分量值。peFlags应被置为PC_RESERVED。

nStartIndex为lpPaletteColors中将变化的起始表项号,nNumEntries

为lpPaletteColors中将变化的表项数。

1 2 3 4  下一页

Tags:VC 部件 浮动

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接