如何在DC上创建一个半透明的矩形
来源:互联网 发布:淘宝不锈钢高速钢锯片 编辑:程序博客网 时间:2024/04/28 08:19
方法一:用XOR
ropOld = dc.SetROP2(R2_XORPEN);
pBrushOld=dc.SelectObject(&brushNew); // brushNew是矩形的颜色
dc.Rectangle(&rectTimeWnd); // RectTimeWnd是矩形的大小
dc.SelectObject(pBrushOld);
dc.SetROP2(ropOld);
方法二: (没有试过) 用Alpha通道
CDC memdc;
CBitmap bmp,*pOldBitmap;
memdc.CreateCompatibleDC(pDC);
bmp.CreateCompatibleBitmap(pDC,300,200);
pOldBitmap = memdc.SelectObject(&bmp);
memdc.FillSolidRect(0,0,300,200,RGB(0,0,255)); //蓝色
BLENDFUNCTION bf;
bf.BlendOp = AC_SRC_OVER;
bf.BlendFlags = 0;
bf.SourceConstantAlpha = 0x7f; //半透明
bf.AlphaFormat = 0;
pDC->AlphaBlend(0,0,300,200,&memdc,0,0,300,200,bf);
memdc.SelectObject(pOldBitmap);
ropOld = dc.SetROP2(R2_XORPEN);
pBrushOld=dc.SelectObject(&brushNew); // brushNew是矩形的颜色
dc.Rectangle(&rectTimeWnd); // RectTimeWnd是矩形的大小
dc.SelectObject(pBrushOld);
dc.SetROP2(ropOld);
方法二: (没有试过) 用Alpha通道
CDC memdc;
CBitmap bmp,*pOldBitmap;
memdc.CreateCompatibleDC(pDC);
bmp.CreateCompatibleBitmap(pDC,300,200);
pOldBitmap = memdc.SelectObject(&bmp);
memdc.FillSolidRect(0,0,300,200,RGB(0,0,255)); //蓝色
BLENDFUNCTION bf;
bf.BlendOp = AC_SRC_OVER;
bf.BlendFlags = 0;
bf.SourceConstantAlpha = 0x7f; //半透明
bf.AlphaFormat = 0;
pDC->AlphaBlend(0,0,300,200,&memdc,0,0,300,200,bf);
memdc.SelectObject(pOldBitmap);
- 如何在DC上创建一个半透明的矩形
- 如何在DC上绘制上百万级的点
- 在iOS上present一个半透明的viewController
- 在地图上,如何对一个地区进行矩形划分
- cocos2dx如何简单判断一个点在旋转的矩形上
- 创建DC画布并在上面画图并将结果缩放到一个按钮上显示
- 如何在Mac上创建一个cocos2d的项目
- 如何在 Mac 上创建一个 cocos2d 的项目
- 如何在Mac上创建一个cocos2d的项目
- 如何在Kafka上创建一个Topic
- 如何在GitHub上创建一个工程
- 如何在GitHub上创建一个工程
- 在surfaceView上添加一个矩形框的功能
- 在surfaceView上添加一个矩形框的功能
- SQL 安装在DC上的问题
- 如何在Java中创建一个矩形类,并通过set()传入长与宽,计算矩形的周长与面积并通过get()查看计算结果
- 在DC上刷一个椭圆型的视图上去(参考)
- 一个DC拷贝到内存DC上。
- 开博啦!
- 历时两年,我又回来了
- EJB3持久化规范(第六章)
- [转]ActionScript2.0编程技术教程(第二章)
- [转]纯AS的Loading
- 如何在DC上创建一个半透明的矩形
- Linux图形界面一些基本操作技巧
- 不吵不好吗?
- 图象处理
- ACM大量习题题库
- 以管理员身份安全地浏览 Web 和读取电子邮件
- 值得一看的传记
- autoconf 使用小记
- 系统备份还原