*在显示卡支持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