MaskBlt 拷贝非矩形区域图象
MaskBlt
该函数使用特定的掩码和光栅操作来对源和目标位图的颜色数据进行组合。
原型:
BOOL MaskBlt(
HDC hdcDest,
int nXDest, int nYDest, int nWidth, int nHeight,
HDC hdcSrc,
int nXSrc, int nYSrc,
HBITMAP hbmMask,
int xMask, int yMask,
DWORD dwRop);
参数:
hdcDest:指向目标设备环境的句柄。
nXDest、nYDest:指定目标矩形左上角的逻辑X、Y坐标。
nWidth、nHeight:指定目标矩形和源位图的宽度、高度,按逻辑单位。
hdcSrc:指向源位图所在的设备环境,如果dwRop参数规定的光栅操作不包括源位图,那么该参数必须为0。
nXSrc、nYSrc:指定源位图左上角的逻辑X、Y坐标。
nbmMask:指向单色掩码位图的句柄,该位图与源设备环境中的彩色位图进行组合。
xMask、yMask:指定由参数hbmMask指向的掩码位图的水平、垂直像素偏移量。
dwRop:指定前景和背景光栅操作码,函数使用这些操作码为控制源和目标数据的组合。背景光栅操作码存储在该参数值的高位字中的高位字节中,而前景光栅操作代码雄在该参数值的高位字中的低位字节中,而低位字则忽略,并且应该为0。宏MAKEROP4创建前景和背景光栅操作码这样的组合。
有关该函数场景中的前景和背景方面的讨论,可参考下面的备注说明。
至于有关公用的光栅操作码清单,可参考BitBlt函数。
Windows CE 1.0 and 1.01 只支持 SRCCOPY and SRCINVERT 光栅操作。
返回值:
如果函数执行成功,那么返回值为非零,如果函数失败,那么返回值为0。获得更多错误信息,请调用GetLastError函数。
备注:
在由hbmMask指定的掩码中,数值1表示在那个位置应使用dwRop指定的前景光栅操作码。数值0表示应使用dwRop指定的背景光栅操作码。
如果光栅操作需要源对象,那么掩码矩形必须覆盖源矩形。如果没有覆盖,那么函数会执行失败。如果光栅操作没有要求源对象,那么掩码矩形必须覆盖目标矩形,如果没有覆盖,那么函数会失败。
如果在调用函数时,源设备环境中实行旋转或剪切变换,那么会出现错误。然而,允许有其他类型的变换。
如果源位图的颜色格式、模式和目标位图不一样,那么该函数对模式或源位图格式,或者两者进行转换,以与目标格式匹配。
如果掩码位图不是单色位图,则会出现错误。
当正在记录的是增强型图元文件时,如果源设备环境标识为增强型图元文件设备环境,那么会出现错误(该函数返回FALSE)。
不是所有设备都支持MaskBlt函数,应用程序应调用GETDeviceCaps函数来确定设备是否支持该函数。
如果没有提供掩码位图,那么该函数非常类似BitBlt,它使用前景光栅操作码。
MaskBlt 拷贝非矩形区域图象的更多相关文章
- Win32 GDI 非矩形区域剪裁,双缓冲技术
传统的Win32通过GDI提供图形显示的功能,包括了基本的绘图功能,如画线.方块.椭圆等等,高级功能包括了多边形和Bezier的绘制.这样app就不用关心那些图形学的细节了,有点类似于UNIX上的X- ...
- QT窗口置顶/真透明/背景模糊/非矩形/跳过任务栏分页器/无边框/无焦点点击/焦点穿透
qt 窗口置顶/真透明/背景模糊/非矩形/跳过任务栏分页器/无边框/无焦点点击/焦点穿透 窗口置顶qt 里是 setWindowFlags(Qt::WindowStaysOnTopHint)kde 里 ...
- 【代码笔记】iOS-根据size截取屏幕中间矩形区域
代码: RootViewController.m #import "RootViewController.h" @interface RootViewController () @ ...
- jquery点击非div区域隐藏div
点击非div区域隐藏div,如图,点击圆的头像(.person-msg)弹出白色底框(.person-centre).点击圆头像以外的区域隐藏白色底框
- [Swift]LeetCode363. 矩形区域不超过 K 的最大数值和 | Max Sum of Rectangle No Larger Than K
Given a non-empty 2D matrix matrix and an integer k, find the max sum of a rectangle in the matrix s ...
- LeetCode:矩形区域【223】
LeetCode:矩形区域[223] 题目描述 在二维平面上计算出两个由直线构成的矩形重叠后形成的总面积. 每个矩形由其左下顶点和右上顶点坐标表示,如图所示. 示例: 输入: -3, 0, 3, 4, ...
- Leetcode 363.矩形区域不超过k的最大数值和
矩形区域不超过k的最大数值和 给定一个非空二维矩阵 matrix 和一个整数 k,找到这个矩阵内部不大于 k 的最大矩形和. 示例: 输入: matrix = [[1,0,1],[0,-2,3]], ...
- 363. 矩形区域不超过 K 的最大数值和(利用前缀和转化为最大子序和问题)
题目: 链接:https://leetcode-cn.com/problems/max-sum-of-rectangle-no-larger-than-k/ 给定一个非空二维矩阵 matrix 和一个 ...
- Java实现 LeetCode 363 矩形区域不超过 K 的最大数值和
363. 矩形区域不超过 K 的最大数值和 给定一个非空二维矩阵 matrix 和一个整数 k,找到这个矩阵内部不大于 k 的最大矩形和. 示例: 输入: matrix = [[1,0,1],[0,- ...
随机推荐
- U盘安装linix
首先制作u盘启动器. 然后在电脑上使用UltraISO将你的安装的linix系统刻录到u盘上 在放入一份linix系统在u盘更目录 boot页面u盘启动.选择 第二次没有放入系统在u盘根目录出现这个: ...
- LoadRunner设置监控Windows系统资源步骤
一般在客户端通过LoadRunner对服务器进行压力测试,都需要实时监控服务器端的系统资源,本篇主要简单介绍一下如何设置在LoadRunner的Controller中配置监控Windows Resou ...
- Jenkins部署war包到tomcat7,报错
1.部署tomcat7,报错,信息如下: [JENKINS] Archiving /opt/.jenkins/jobs/qxpt_jx-deploy/workspace/pom.xml to com. ...
- HDU 2175
http://acm.hdu.edu.cn/showproblem.php?pid=2175 做得好辛苦的一道规律题,至于为什么辛苦..dont ask me why... n号盘子出现的位置是(1, ...
- I.MX6 Manufacturing Tool V2 (MFGTool2) ucl2.xml hacking
<!-- * Copyright (C) 2010-2013, Freescale Semiconductor, Inc. All Rights Reserved. * The CFG elem ...
- SpringBoot启动报:Caused by: java.lang.IllegalArgumentException: At least one JPA metamodel must be present!
使用spring boot对项目改造,启动报错: Caused by: java.lang.IllegalArgumentException: At least one JPA metamodel m ...
- L3-013 非常弹的球 (30 分)
刚上高一的森森为了学好物理,买了一个“非常弹”的球.虽然说是非常弹的球,其实也就是一般的弹力球而已.森森玩了一会儿弹力球后突然想到,假如他在地上用力弹球,球最远能弹到多远去呢?他不太会,你能帮他解决吗 ...
- 0302 IT行业就业与软件工程
阅读以下文章 http://www.thea.cn/news/terminal/9/9389.html http://www.shzhidao.cn/system/2015/09/22/0102610 ...
- [CLPR]BP神经网络的C++实现
文章翻译自: http://www.codeproject.com/Articles/16650/Neural-Network-for-Recognition-of-Handwritten-Digi ...
- 纯php实现中秋博饼游戏(2):掷骰子并输出结果
这篇是纯php实现中秋博饼游戏系列博文(2) 上文是:纯php实现中秋博饼游戏(1):绘制骰子图案 http://www.cnblogs.com/zqifa/p/php-dice-1.html要纯ph ...