*在顯示卡支持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、循環(huán)中加入消息翻譯傳送,不至于運行期間鼠標變成等待的沙漏
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
說明:這些是本人在學習VC中的一些心得,如果有不對的地方或要補充的地方請來電子郵件:
nenlong@163.net