AlphaBlend 可以在对话框上画出半透明图像
TransparentBlt 可以画出非矩形图像那如果要画出 半透明的非矩形图像,要怎么做
应该怎么组合使用

解决方案 »

  1.   

    也就是说你想要圆角矩形?就只用AlphaBlend就可以 
      

  2.   

    直接用AlphaBlend就足够了,
    先修改位图(32位),将图形外的Alpha设成0,图形内的Alpha设成你要的透明度 
    然后在调用AlphaBlend使用位图自身带有的Alpha,就可以了
      

  3.   

    那么AlphaBlend的BLENDFUNCTION是干什么用的,如果要使用位图自身的Alpha,应该如何设置这个参数
      

  4.   


    这是一种方法。另外一种是先按照矩形区域调用AlphaBlend(注意先绘制到一个临时场景中,不要实际绘制到目标场景上),然后获得一个关于透明部分的单色位图掩模,然后调用PlgBlt到目标场景。
      

  5.   

    唉,这里虽然是CSDN,但你不看MSDN的吗?
    BLENDFUNCTION 就是字面理解的意思
    我所说的做法需要这样设置它的内容
    BlendOp = AC_SRC_OVER;
    AlphaFromat = AC_SRC_ALPHA;
    BlendFlags = 0;
    SourceConstandAlpha = 255;