Bitblt单色位图SetBkColor、SetTextColor作用
来源:互联网 发布:交换机mac地址 h3c 编辑:程序博客网 时间:2024/04/28 07:31
由于文章中图片比较多,我不会在论坛上发,就只有把Word文档转了图片传上来,如果有需要可以索取电子文档。
邮件地址suolao_wk@163.com
void CGameDIB::TransparentBlt(HDC hdcDest, int iDestX, int iDestY, int iDestWidth, int iDestHeight,
HDC hdcSource, int iSourceX, int iSourceY, int iSourceWidth, int iSourceHeight, UINT Tcol)
{
// 1. 建立图形资源
HBITMAP hbitmapMem = ::CreateCompatibleBitmap(hdcDest, iDestWidth, iDestHeight);
HBITMAP hbitmapMask = ::CreateBitmap(iDestWidth, iDestHeight, 1, 1, NULL); // 创建单色掩码位图
HDC hDCMem = ::CreateCompatibleDC(hdcDest);
HDC hdcMask = ::CreateCompatibleDC(hdcDest);
HBITMAP oldBMPMem = (HBITMAP)::SelectObject(hDCMem, hbitmapMem);
HBITMAP oldBMPMask = (HBITMAP)::SelectObject(hdcMask, hbitmapMask);
// 2. 拷贝或压缩拷贝源DC中的位图到内存DC中
if (iSourceWidth == iDestWidth && iSourceHeight == iDestHeight)
::BitBlt(hDCMem, 0, 0, iDestWidth, iDestHeight, hdcSource, iSourceX, iSourceY, SRCCOPY);
else
::StretchBlt(hDCMem, 0, 0, iDestWidth, iDestHeight, hdcSource, iSourceX, iSourceY, iSourceWidth, iSourceHeight, SRCCOPY);
// 3.生成掩码位图
::SetBkColor(hDCMem, Tcol); // 设置掩码图中白色的对应RGB,若无则生成全黑。
::BitBlt(hdcMask, 0, 0, iDestWidth, iDestHeight, hDCMem, 0, 0, SRCCOPY); // 生成掩码位图
::SetBkColor( hDCMem, RGB(0, 0, 0) );
::SetTextColor(hDCMem, RGB(255, 255, 255) );
::BitBlt(hDCMem, 0, 0, iDestWidth, iDestHeight, hdcMask, 0, 0, SRCAND); // 黑色背景的人物
// 4.透明显示
::SetBkColor(hdcDest, RGB(255, 255, 255) );
::SetTextColor(hdcDest, RGB(0, 0, 0) );
::BitBlt(hdcDest, iDestX, iDestY, iDestWidth, iDestHeight, hdcMask, 0, 0, SRCAND); // 生成掩码洞
::BitBlt(hdcDest, iDestX, iDestY, iDestWidth, iDestHeight, hDCMem, 0, 0, SRCPAINT); // 透明效果
// 5.释放图形资源
::SelectObject(hDCMem, oldBMPMem);
::DeleteDC(hDCMem);
::DeleteObject(hbitmapMem);
::SelectObject(hdcMask, oldBMPMask);
::DeleteDC(hdcMask);
::DeleteObject(hbitmapMask);
}
- Bitblt单色位图SetBkColor、SetTextColor作用
- (转)Bitblt单色位图SetBkColor、SetTextColor作用
- Bitblt单色位图SetBkColor、SetTextColor作用
- Bitblt单色位图SetBkColor、SetTextColor作用网络版. 加自己的理解.
- SetTextColor() COLORREF SetBkColor SetBkMode的用法
- 单色位图的读取
- 彩色位图与单色位图
- 位图与bitblt【位图知识】
- 位图和BitBlt
- 位图和Bitblt
- 位图和Bitblt
- BitBlt 画透明位图
- 关于图片镂空和bitblt及setbkcolor等的理解
- 单色位图的联通性
- SetBkColor
- Windows位图光栅运算 - Bitblt
- 位图,设备上下文和BitBlt
- windows程序设计:位图和bitblt
- 开始学IT
- db2
- 页面缓存——内存与文件的那些事儿
- 所有版本IE共存最好解决工具 -- Internet Explorer Collection
- Sqlite3支持的数据类型 日期函数 Sqlite3 函数
- Bitblt单色位图SetBkColor、SetTextColor作用
- Microsoft JScript 编译错误 错误 '800a03ec' asp错误总集
- 【程序员谈恋爱 三】培养自信
- gcc 精彩之旅
- GNOME与KDE的发展
- 个人博客如何增加流量
- oracle实用例子
- 090923c语言学习日记(13章练习)
- makefile 的使用