关于CDC::PlgBlt的理解与使用

本文详细介绍了如何利用CDC::PlgBlt函数将图像内容从源设备上下文传输到目标设备上下文中的平行四边形区域,包括设置平行四边形坐标、源矩形区域、单色掩码位图的方法,并提供了坐标转换的公式,同时展示了代码实现和效果。
摘要由CSDN通过智能技术生成

CDC::PlgBlt函数执行从源设备上下文中的指定矩形到给定设备上下文中指定的平行四边形的颜色数据位块传输。如果给定的位掩码句柄标识有效的单色位图,则函数使用此位图掩蔽源矩形中的颜色数据位。其原型是:

BOOL PlgBlt( POINT lpPoint, CDC* pSrcDC, int xSrc, int ySrc, int nWidth, int nHeight, CBitmap& maskBitmap, int xMask, int yMask );

以下图为例:

如果我们想把整个图片的内容投射到一个平行四边形的区域里,怎么实现呢?这就可以借助CDC::PlgBlt来实现:

首先:我们要确定平行四边形在哪里?也就是它的坐标是多少。不过,确定平行四边形不是通过给定四个点坐标而确定的,而是给出平行四边形的三个点坐标:左上,右上,左下三点坐标。这三点坐标与要投射的矩形区域的左上,右上,左下三点一一对应的。给个图示吧:

三个点的坐标是通过坐标点数组来给的。如:

        POINT point[3];
      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值