GDI+实现不规则窗体

MFC界面编程1:GDI+实现不规则窗体
 VC++玩转炫酷悬浮窗3---GDI+完美实现不规则窗体


1.UpdateLayeredWindow
更新的位置、大小、形状、内容和半透明的分层窗口。
BOOL WINAPI UpdateLayeredWindow(
  _In_     HWND          hwnd,//窗口句柄
  _In_opt_ HDC           hdcDst,//屏幕上下文DC
  _In_opt_ POINT         *pptDst,//窗口相对于屏幕的位置的POINT结构的指针
  _In_opt_ SIZE          *psize,//显示窗口大小
  _In_opt_ HDC           hdcSrc,//窗口上下文DC
  _In_opt_ POINT         *pptSrc,//窗口绘图表面在设备上下文位置的POINT结构的指针
  _In_     COLORREF      crKey,
  _In_opt_ BLENDFUNCTION *pblend,//透明混合参数
  _In_     DWORD         dwFlags
);





2.BLENDFUNCTION structure
BLENDFUNCTION结构混合控制混合通过指定源和目标位图的功能。
typedef struct _BLENDFUNCTION {
  BYTE BlendOp;//AC_SRC_OVER
  BYTE BlendFlags;//0
  BYTE SourceConstantAlpha;//
  BYTE AlphaFormat;
} BLENDFUNCTION, *PBLENDFUNCTION, *LPBLENDFUNCTION;
BlendOp:指定AC_SRC_OVER
BlendFlags:必须为0
SourceConstantAlpha:指定一个alpha透明度值被用于整个源位图。SourceConstantAlpha值加上任何在源位图的alpha值。假设你的图像是透明的,SourceConstantAlpha设置为0。SourceConstantAlpha值设置为255(不透明的)。
AlphaFormat:这个参数控制源和目标的解析方式,使用AC_SRC_ALPHA
AC_SRC_ALPHA这个值在源有Alpha通道时(也就是操作的图本身带有透明通道信息时),提醒系统API调用函数前必须预先乘以alpha值,也就是说位图上某个像素位置的red、green、blue通道值必须先与alpha相乘。例如,如果alpha透明值是x,那么red、green、blue三个通道的值必须乘以x并且再除以255(因为alpha的值的范围是0~255),之后才能被调用。









demo: http://download.csdn.net/detail/greless/9885566





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值