*在顯示卡支持256以上時通過調(diào)色板時得不到滿意的結(jié)果。
*位圖必須是256以及小于256色的,因為大于256色的位圖
*沒有調(diào)色板;
1、把位圖文件讀入內(nèi)存
在響應(yīng)的結(jié)構(gòu)中復(fù)制內(nèi)存的數(shù)據(jù),或把指針指向響應(yīng)的位置,
具體的操作在這里不敘述
BITMAPINFO?????? *lpbi;
BITMAPFILEHEADER bfh;
BITMAPINFOHEADER bih;
RGBQUAD????????? *lpRGB;
BYTE *lpData=NULL;
2、利用SetDIBitsToDevice函數(shù)輸出
ret=SetDIBitsToDevice(pDC->GetSafeHdc(),
posx,posy,
imgw,
imgh,
0,0,
0,
imgh,
lpData,
lpbi,
DIB_RGB_COLORS);
3、淡出效果主要是修改lpbi結(jié)構(gòu)的變量來實現(xiàn)
lpbi->bmiColors[i].rgbBlue
lpbi->bmiColors[i].rgbRed
lpbi->bmiColors[i].rgbGreen
4、循環(huán)中加入消息翻譯傳送,不至于運(yùn)行期間鼠標(biāo)變成等待的沙漏
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
說明:這些是本人在學(xué)習(xí)VC中的一些心得,如果有不對的地方或要補(bǔ)充的地方請來電子郵件:
nenlong@163.net