在Windows下进行GUI编程,DC拷贝是少不了的,常用的有Bitblt,Stretchblt、TransparentBlt等,它们都很强大,不过在一些特殊情况,比如要从一个DC拷贝圆形区域到另一个DC,直接调用它们就无法实现,但是通过加以组合、多次调用,就能发挥出更强大的作用。
下面看看圆形截图效果:
说明:我封装了一个圆形截图接口,声明如下:
/*
CircleCapture 从一个DC拷贝圆形区域缩放到另一个DC,
圆的半径由用户指定
HDC hdcDst 目标DC
int nXOriginDst 目标X坐标
int nYOriginDst 目标Y坐标
int nDiameterDst 目标圆直径
HDC hdcSrc 源DC
int nXOriginSrc 源X坐标
int nYOriginSrc 源Y坐标
int nDiameterSrc 源圆直径
int nWidth 圆的线条粗细
DWORD dwColor 圆的颜色
*/
extern "C"
BOOL WINAPI CircleCapture(
HDC hdcDst, int nXOriginDst, int nYOriginDst, int nDiameterDst,
HDC hdcSrc, int nXOriginSrc, int nYOriginSrc, int nDiameterSrc,
int nWidth, DWORD dwColor );
这个接口的源代码可以去这里下载
注:如果有意见或建议,请在本页面留言,因为按CSDN规定,自己不能评论自己的资源。
.