1CM

  

利用与设备无关的位图输出功能,实现淡出的效果

*在显示卡支持256以上时通过调色板时得不到满意的结果。
*位图必须是256以及小于256色的,因为大于256色的位图
*没有调色板;

1、把位图文件读入内存
在响应的结构中复制内存的数据,或把指针指向响应的位置,
具体的操作在这里不叙述
BITMAPINFO       *lpbi;
BITMAPFILEHEADER bfh;
BITMAPINFOHEADER bih;
RGBQUAD          *lpRGB;
BYTE *lpData=NULL;
2、利用SetDIBitsToDevice函数输出
ret=SetDIBitsToDevice(pDC->GetSafeHdc(),
posx,posy,
imgw,
imgh,
0,0,
0,
imgh,
lpData,
lpbi,
DIB_RGB_COLORS);
3、淡出效果主要是修改lpbi结构的变量来实现
lpbi->bmiColors[i].rgbBlue
lpbi->bmiColors[i].rgbRed
lpbi->bmiColors[i].rgbGreen
4、循环中加入消息翻译传送,不至于运行期间鼠标变成等待的沙漏
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}


说明:这些是本人在学习VC中的一些心得,如果有不对的地方或要补充的地方请来电子邮件:
nenlong@163.net

posted on 2007-03-14 17:10 1CM 阅读(103) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理