请问透明位图
请教透明位图
中间足球图片
创建足球位图 hImageBMP 选入hImageDC
创建单色掩码位图 hMaskBMP 选入hMaskDC(这时候单色位图什么都没有)
1.
SetBkColor(hImageDC, RGB(0,0,0xff)); // 设置背景色为蓝色
BitBlt(hMaskDC, 0, 0, nWidthDest, nHeightDest, hImageDC, 0, 0, SRCCOPY); // 拷贝到hMaskDC
说经过以上操作后掩码位图变成如下图片,为什么?这里背景色的作用是什么(发生了什么位操作)?
2.
SetBkColor(hImageDC, RGB(0,0,0));
SetTextColor(hImageDC, RGB(255,255,255));
BitBlt(hImageDC, 0, 0, nWidthDest, nHeightDest, hMaskDC, 0, 0, SRCAND);
说这些操作让hImageDC中足球的背景变成黑色,感觉这些操作和 ~S&D相同效果,背景色 前景色是怎么起作用的?
求指导!
------解决方案--------------------
这个我好像也没看到专门的文档或者资料说明,是多方面知识综合起来的,当初看到那篇文章就基本明白了,再看看MSDN,SetBkColor的说明,虽然说的很简略:
If the background mode is OPAQUE, the background color is used to fill gaps between styled lines, gaps between hatched lines in brushes, and character cells. The background color is also used when converting bitmaps from color to monochrome and vice versa.
再编码试一下就理解了。
中间足球图片
创建足球位图 hImageBMP 选入hImageDC
创建单色掩码位图 hMaskBMP 选入hMaskDC(这时候单色位图什么都没有)
1.
SetBkColor(hImageDC, RGB(0,0,0xff)); // 设置背景色为蓝色
BitBlt(hMaskDC, 0, 0, nWidthDest, nHeightDest, hImageDC, 0, 0, SRCCOPY); // 拷贝到hMaskDC
说经过以上操作后掩码位图变成如下图片,为什么?这里背景色的作用是什么(发生了什么位操作)?
2.
SetBkColor(hImageDC, RGB(0,0,0));
SetTextColor(hImageDC, RGB(255,255,255));
BitBlt(hImageDC, 0, 0, nWidthDest, nHeightDest, hMaskDC, 0, 0, SRCAND);
说这些操作让hImageDC中足球的背景变成黑色,感觉这些操作和 ~S&D相同效果,背景色 前景色是怎么起作用的?
求指导!
------解决方案--------------------
这个我好像也没看到专门的文档或者资料说明,是多方面知识综合起来的,当初看到那篇文章就基本明白了,再看看MSDN,SetBkColor的说明,虽然说的很简略:
If the background mode is OPAQUE, the background color is used to fill gaps between styled lines, gaps between hatched lines in brushes, and character cells. The background color is also used when converting bitmaps from color to monochrome and vice versa.
再编码试一下就理解了。