BitBlt位图函数详解
MSDN地址:http://msdn.microsoft.com/en-us/library/dd183370(VS.85).aspx
函数功能:
该函数对指定的源或设备环境区域中的像进行位块(bit_block)转换,以传送到目标设备环境。
函数原型:











参数:
thdcDest:
指向目标设备环境的句柄。
nXDest:
指定目标矩形区域克上角的X轴逻辑坐标。
nYDest:
指定目标矩形区域左上角的Y轴逻辑坐标。
nWidth:
指定源和目标矩形区域的逻辑宽度。
nHeight:
指定源和目标矩形区域的逻辑高度。
hdcSrc:
指向源设备环境句柄。
nXSrc:
指定源矩形区域左上角的X轴逻辑坐标。
nYSrc:
指定源矩形区域左上角的Y轴逻辑坐标。
dwRop:
指定光栅操作代码。这些代码将定义源矩形区域的颜色数据,如何与目标矩形区域的颜色数据组合以完成最后的颜色。
下面列出了一些常见的光栅操作代码:
值 |
描述 |
BLACKNESS |
表示使用与物理调色板索引0相关的色彩来填充目标矩形区域,(对缺省的物理调色板而言,该颜色为黑色)。 |
DSTINVERT |
表示使目标矩形区域颜色取反。 |
MERGECOPY |
表示使用布尔类型的AND(与)操作符将源矩形区域的颜色与特定模式组合一起。 |
MERGEPAINT |
通过使用布尔类型的OR(或)操作符将反向的源矩形区域的颜色与目标矩形区域的颜色合并。 |
NOTSRCCOPY |
将源矩形区域颜色取反,再拷贝到目标矩形区域。 |
NOTSRCERASE |
使用布尔类型的OR(或)操作符组合源和目标矩形区域的颜色值,然后将怕颜色取反。 |
PATCOPY |
将特定的模式拷贝到位图上。 |
PATPAINT |
通过使用布尔OR(或)操作符将源矩形区域取反后的颜色值与特定模式的颜色合并。然后使用OR(或)操作符将该操作的结果与目标矩形区域内的颜色合并。 |
PATINVERT |
通过使用XOR(异或)操作符将目标矩形区域内的颜色与特定模式的颜色合并。 |
SRCAND |
通过使用AND(与)操作符将来源和目标矩形区域内的颜色合并。 |
SRCCOPY |
将源矩形区域直接拷贝到目标矩形区域。 |
SRCERASE |
通过使用AND(与)操作符将目标矩形区域颜色取反后与源矩形区域的颜色值合并。 |
SRCCINVERT |
通过使用布尔型的XOR(异或)操作符将源和目标矩形区域的颜色合并。 |
SRCPAINT |
通过使用布尔型的OR(或)操作符将源和目标矩形区域的颜色合并。 |
WHITENESS |
使用与物理调色板中索引1有关的颜色填充目标矩形区域。(对于缺省物理调色板来说,这个颜色就是白色)。 |
返回值:
如果函数成功,那么返回值非零;如果函数失败,则返回值为零。
Windows NT:若想获取更多的错误信息,请调用GetLastError函数。
备注:如果在源设备中可以实行旋转或剪切变换,那么函数数BitBlt返回一个错误。如果存在其他变换(并且目标设备环境中匹配变换无效),那么目标设备环境中的区域将在需要时进行拉伸、压缩或旋转。
如果源和目标设备环境的颜色格式不匹配,那么BitBlt函数将源场景的颜色格式转换成能与目标格式匹配的格式。当正在记录一个增强型图元文件时,如果源设备环境标识为一个增强型图元文件设备环境,那么会出现错误。如果源和目标设备环境代表不同的设备,那么BitBlt函数返回错误。
Windows CE:在Windows CE 1.0版中,参数dwRop只可以指定为下列值:SRCCOPY,SRCAND,SRCPAINT,SRCINVERT。在Windows CE 2.0版中,参数dwRop可以是任何油印机操作代码值。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:Wingdi.h;库文件:gdi32.lib。
示例:


















【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了