TransparentBlt、StretchBlt与BitBlt三个函数的区别
TransparentBlt、StretchBlt与BitBlt三个函数的区别
BOOL StretchBlt(
int x, //指定目的矩形区域左上角的X坐标
int y, //指定目的矩形区域左上角的Y坐标
int nWidth, //指定目的矩形区域的宽度
int nHeight, //指定目的矩形区域的高度
CDC* pSrcDC,
int xSrc, //指定源矩形区域左上角的X坐标
int ySrc, //指定源矩形区域左上角的Y坐标
int nSrcWidth, //指定源矩形区域的宽度
int nSrcHeight, //指定源矩形区域的高度
DWORD dwRop //此参数参考MSDN,SRCCOPY类型为直接拷贝
); //此函数将一个位图资源从一个矩形区域拷贝到另一个矩形区域,即缩放位图
BOOL TransparentBlt(
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
CDC* pSrcDC,
int xSrc,
int ySrc,
int nSrcWidth,
int nSrcHeight,
UINT clrTransparent
); //此函数同样具有缩放功能,但此函数最后一个参数用来指定作为透明色的RGB;
BOOL BitBlt(
int x,
int y,
int nWidth,
int nHeight,
CDC* pSrcDC,
int xSrc,
int ySrc,
DWORD dwRop
); //此函数同样用来拷贝位图资源,但不具备缩放功能.
用法举例:
CPaintDC dc(this); CBitmap BackBMP;
BackBMP.LoadBitmapW(IDB_BITMAP1);
BITMAP bm; BackBMP.GetBitmap(&bm);
CDC ImageDC;
ImageDC.CreateCompatibleDC(&dc);
CBitmap* pOldImageBMP = ImageDC.SelectObject(&BackBMP);
dc.StretchBlt(0, 0, bm.bmWidth+15, bm.bmHeight+15, &ImageDC, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY);
ImageDC.SelectObject(pOldImageBMP);
CBitmap ForeBMP;
ForeBMP.LoadBitmapW(IDB_BITMAP2);
ForeBMP.GetBitmap(&bm);
pOldImageBMP = ImageDC.SelectObject(&ForeBMP);
dc.TransparentBlt(0, 0, bm.bmWidth+15, bm.bmHeight+15, &ImageDC, 0, 0, bm.bmWidth, bm.bmHeight, RGB(255, 255, 255));
//源BitMap中的RGB(255, 255, 255)值当作透明颜色,也就是白色。
ImageDC.SelectObject(pOldImageBMP);
TransparentBlt、StretchBlt与BitBlt三个函数的区别相关推荐
- php怎么输出3个函数和,PHP利用var_dump,var_export,print_r三个函数的区别示例
感兴趣的小伙伴,下面一起跟随512笔记的小玲来看看吧!下面的示例看看这三个函数的具体的区别,其中var_dump和var_export比较少用,但他们两者又很相似.所以可以看看: 代码如下: /* 5 ...
- CListCtrl控件的InsertItem和SetItemText和SetItem三个函数的区别
CListCtrl控件的InsertItem和SetItemText和SetItem三个函数的区别 分类: vc 2013-03-17 08:21 1548人阅读 评论(0) 收藏 举报 本人 ...
- isdigit()、isalpha()、isalnum() 三个函数的区别和注意点
一.isdigit() python关于 isdigit() 内置函数的官方定义:S.isdigit() -> bool Return True if all characters in S a ...
- python:isdigit()、isalpha()、isalnum() 三个函数的区别和注意点
一.isdigit() python关于 isdigit() 内置函数的官方定义: S.isdigit() -> bool Return True if all characters in S ...
- jquery after append appendTo三个函数的区别
jq文档的说明是 1.after函数 定义和用法: after() 方法在被选元素后插入指定的内容. 语法: $(selector).after(content) 实例: <html> & ...
- controller 用 map 接收值_一文弄懂apply、map和applymap三种函数的区别
CDA数据分析师 出品 在日常处理数据的过程中,会经常遇到这样的情况,对一个DataFrame进行逐行.逐列或者逐元素的操作,很多小伙伴也知道需要用到apply.map或者applymap,但是具体什 ...
- after、append和appendTo三个函数的区别
jq文档的说明是 1.after函数 定义和用法: after() 方法在被选元素后插入指定的内容. 语法: $(selector).after(content) 实例: <html> & ...
- Javascript Math ceil()、floor()、round()三个函数的区别
为什么80%的码农都做不了架构师?>>> ceil():将小数部分一律向整数部分进位. 如: Math.ceil(12.2)//返回13 Math.ceil(12.7)// ...
- [Javascript] Math ceil()、floor()、round()三个函数的区别
概述: 1. round是四舍五入的 2. ceiling是向上取整 3. float是向下取整 舍入规则: 1. Math.ceil()执行向上舍入,即它总是将数值向上舍入为最接近的整数: 2. M ...
最新文章
- Go中协程间通信的方式Sync.Cond
- erdas2015几何校正模块在哪_在ERDAS中进行几何校正
- Reactive Extensions简介一
- GridView RadioButton 解决办法(一) -- 实现单选
- mysql 一致性读_mysql/mariadb知识点总结(27):一致性读,快照读
- android 信号强度变化,Android监听WIFI网络的变化并且获得当前信号强度
- [深入学习C#]匿名函数、委托和Lambda表达式
- websphere linux版本,安装IBM Websphere on linux
- 三星c7 linux驱动,三星c7手机驱动(三星c7驱动程序)V1.5.55.2 专业版
- Python 计算两点之间的距离
- 《VoIP技术构架(第2版·修订版)》一 第2章 企业电话的今天
- 什么是ARM TCM内存
- 剪不断,理不乱——Javascript,JQuery,AJAX
- 平安科技实习生面试经历
- 精美的HTML5焦点图特效
- 每天学点英语语法-重头开始8
- 简单的一个在线聊天室
- gdb调试[奇牛学院]
- 单片机移频防啸叫_麦克风的啸叫怎么用移频电路进行啸叫抑制?
- R语言入门教学(3)-不懂就问help()的使用及package的安装