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,- ...
随机推荐
- 054——VUE中vue-router之实例讲解定义一下单页面路由
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- POJ 3279 Fliptile 状态压缩,思路 难度:2
http://poj.org/problem?id=3279 明显,每一位上只需要是0或者1, 遍历第一行的所有取值可能,(1<<15,时间足够)对每种取值可能: 对于第0-n-2行,因为 ...
- npm设置仓库
如果国外官方的npm仓库下载速度很慢的话,可以考虑更换npm仓库,加快下载包的速度. 1.通过config命令 npm config set registry https://registry.npm ...
- HTML 代码常用技巧
IE Javascript快捷键操作 . oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键 <table bo ...
- Python基础学习----异常
''' 异常: 程序在运行的时候,Python的解释器遇到一个错误会停止运行. 并且会提供错误的信息,这就是异常 抛出异常: 程序停止执行并且提示错误信息这个动作就是抛出异常(raise Except ...
- 5.3 将users表添加到xadmin后台
在users模块中添加adminx.py文件,是xadmin后台管理默认的文件名,内容是: from .models import EmailVerifyRecord, Banner import x ...
- threading模块创建线程
什么是线程 (thread) 线程也是一种多任务编程方式,可以使用计算机的多核资源.线程被称为轻量级的进程. 线程特征 *线程计算机多核分配的最小单位 *一个进程可以包含多个线程 *线程也是一个运行的 ...
- test20181024 qu
题意 分析 极似UVa11995 I Can Guess the Data Structure! 模拟即可,时间复杂度(--)\(O(n \log n)\) 旁边的L君:这题有两个坑点,我被卡了一次. ...
- nexus helm proxy 集成&&问题解决
对于使用kubernetes 进行开发的人员来说helm是很方便的 构建nexus helm plugin git clone https://github.com/sonatype-nexus- ...
- winform 勾选可以改变框控件
public partial class UCCheck : UserControl { [Browsable(true), Category("修改属性"), Descripti ...