在WinCE下绘制半透的效果要注意的问题

  

Windows XP 中实现半透明效果并不是件难事,仅仅只需要调SetLayeredWindowAttributes函数即可。如果同样的效果也想在Windows CE 中重现呢?因为Windows CE没有SetLayeredWindowAttributes 函数,不过在Windows CE 5.0开始支持AlphaBlend,该函数的作用是将两个HDC根据一定的比例混合,即有了类似半透明的效果。

知道了有这个函数,我们现在就应该来看看这个函数怎么用。查阅MSDN,该函数定义为:

BOOL AlphaBlend(

  HDC           hdcDest,// 指向目标设备环境的句柄

  int           nXOriginDest,// 指定目目标矩形区域左上角的X轴坐标

  int           nYOriginDest,// 指定目标矩形区域左上角的Y轴坐标

  int           nWidthDest,// 指定目标矩形区域的宽度

  int           nHeightDest,// 指向目标矩形区域高度的句柄

  HDC           hdcSrc, //指向源设备环境的句柄

  int           nXOriginSrc,// 指定源矩形区域左上角的X轴坐标

  int           nYOriginSrc,// 指定源矩形区域左上角的Y轴坐标

  int           nWidthSrc,// 指定源矩形区域的宽度

  int           nHeightSrc,// 指定源矩形区域的高度

  BLENDFUNCTION blendFunction //指定用于源位图和目标位图使用的alpha混合功能

);

要能想正常的使用这个函数还必须做一件事件将Windows.hCoredll.lib加载到你的工程里去。

 

    做好了这些事情钱准备了,可以编译你工程的了。幸运的话能够顺利通过编写,不幸的话将出现下列提示错误:

    error C3861: 'AlphaBlend': identifier not found”函数没有定义,是不是很奇怪我们明明把头文件和Library都包含到我们的工程里怎么会没有定义呢?是不是很纳闷?

    不要郁闷,那不是你的工程的问题而是系统的问题!在定制WINCE系统DE 时候有一个选项需要注意:如下图:

如果你想用AlphaBlend来绘制透明效果就必须将这一项选上。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值