BitBlt函数的用法和一个小实例
2014-02-02 22:57
344 查看
BitBlt 用于从原设备中复制位图到目标设备,语法格式如下:
BOOLBitBlt(int x,int y,int nWidth,int nHeight,CDC*pSrcDC,int xSrc,int ySrc,DWORDdwRop);
参数:
x:目标矩形区域的左上角x轴坐标点。
y:目标矩形区域的左上角y轴坐标点。
nWidth:在目标设备中绘制位图的宽度。
nHight:在目标设备中绘制位图的高度。
pSrcDC:源设备上下文对象指针。
xSrc:源设备上下文的起点x轴坐标,函数从该起点复制位图到目标设备。
ySrc:源设备上下文的起点y轴坐标,函数从该起点复制位图到目标设备。
dwRop:光栅操作代码
dwRop有如下选择:
示例代码片段:
CBitmap,HBitmap,Bitmap区别及联系
参考博文:http://blog.csdn.net/ivan_ljf/article/details/8569130,并感谢原作者
【机器博弈中的用途】:把一枚棋子画在棋盘上
一.五子棋:直接用BitBlt函数把棋子覆盖到棋盘上
二.象棋
(1) 把原来位置的棋子用棋盘图案覆盖掉(用BitBlt函数); (2) 在该位置贴上棋子的图案,由于棋子图案是透明的,所以要用TransparentBlt函数; (3) 如果这枚棋子是选中的,那么再在该位置贴上选中的图案(再用一次TransparentBlt函数)。
BOOLBitBlt(int x,int y,int nWidth,int nHeight,CDC*pSrcDC,int xSrc,int ySrc,DWORDdwRop);
参数:
x:目标矩形区域的左上角x轴坐标点。
y:目标矩形区域的左上角y轴坐标点。
nWidth:在目标设备中绘制位图的宽度。
nHight:在目标设备中绘制位图的高度。
pSrcDC:源设备上下文对象指针。
xSrc:源设备上下文的起点x轴坐标,函数从该起点复制位图到目标设备。
ySrc:源设备上下文的起点y轴坐标,函数从该起点复制位图到目标设备。
dwRop:光栅操作代码
dwRop有如下选择:
BLACKNESS 使用黑色填充目标区域 DSTINVERT 目标矩阵区域颜色取反 MERGECOPY 使用与运算组合原设备矩形区域的颜色和目标设备的画刷 MERGEPAINT 使用或运算将反向的源矩形区域的颜色和目标矩形区域的颜色合并 NOTSRCCOPY 复制源设备区域的反色到目标设备中 NOTSRCERASE 使用或运算组合源设备区域与目标设备区域的颜色,然后对结果颜色取反 PATCOPY 复制源设备当前选中的画刷到目标设备 PATINVERT 使用异或运算组合目标设备选中的画刷和目标设备区域的颜色 PATPAINT 通过或运算组合目标区域当前选中的画刷和源设备区域反转的颜色 SRCAND 使用与运算组合源设备和目标设备区域的颜色 SRCCOPY 直接复制源设备区域到目标设备中 SRCERASE 使用与运算组合目标设备区域的反色与源设备区域的颜色 SRCINVERT 使用异或运算组合源设备区域颜色和目标设备区域颜色 SRCPAINT 使用或运算组合源设备区域颜色和目标设备区域颜色 WHITENESS 使用白色填充目标区域 |
HDC hdc,hdcbmp; hdc=GetDC(hwnd);//获取设备上下文句柄 hdcbmp=CreateCompatibleDC(hdc); //HBITMAP hBitmap=LoadImage(hInst, MAKEINTRESOURCE(IDB_BLACK), IMAGE_BITMAP, 0, 0, LR_DEFAULTSIZE | LR_SHARED);//这行代码可代替下面三行代码来加载图片,具体可见CBitmap,HBITMAP,Bitmap的区别 CBitmap bmp;//定义位图对象 bmp.LoadBitmap(IDB_BLACK);//加载位图 HBITMAP hBitmap=(HBITMAP)bmp.GetSafeHandle();//获取位图指针 SelectObject(hdcbmp,hBitmap);//选中位图对象 BitBlt(hdc, 0, 0, 40, 40, hdcbmp, 0, 0, SRCCOPY);
CBitmap,HBitmap,Bitmap区别及联系
参考博文:http://blog.csdn.net/ivan_ljf/article/details/8569130,并感谢原作者
【机器博弈中的用途】:把一枚棋子画在棋盘上
一.五子棋:直接用BitBlt函数把棋子覆盖到棋盘上
二.象棋
(1) 把原来位置的棋子用棋盘图案覆盖掉(用BitBlt函数); (2) 在该位置贴上棋子的图案,由于棋子图案是透明的,所以要用TransparentBlt函数; (3) 如果这枚棋子是选中的,那么再在该位置贴上选中的图案(再用一次TransparentBlt函数)。
相关文章推荐
- swift中的函数用法,嵌套函数和返回一个函数以及函数作为参数,闭包
- Python基础之函数用法实例详解
- CDC与HDC中StretchBlt()和BitBlt()函数用法
- 一个线程中lock用法的经典实例
- DOM节点深度克隆函数cloneNode()用法实例
- Python iter()函数用法实例分析
- 用PHP写的一个冒泡排序法的函数简单实例
- Python内置函数Type()函数一个有趣的用法
- X5开源框架的用法分享:一个app前端访问后端的实例 (适用于 X5_V3.0版本) by DoIt
- JS函数this的用法实例分析
- 一个函数模版和类模版实例
- VB6 用数组作函数参数并返回一个数组的实例
- jquery中attr()与prop()函数用法实例详解(附用法区别)
- javascript中动态函数用法实例分析
- C#虚函数用法实例分析
- matlab中padarray函数用法:实现对一个n*n矩阵扩充为(n+1)*(n+1)的矩阵
- jQuery中closest()函数用法实例
- php中数字、字符与对象判断函数用法实例
- Oracle 函数 wm_concat 将列转行 用法 实例
- python函数参数*args**kwargs用法实例