4611|19

84

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

EVC的透明按钮问题 [复制链接]

不知道EVC下的透明按钮该如何实现, 半透明的更好,多谢!

最新回复

标记一下,学习。  详情 回复 发表于 2008-11-27 09:27
点赞 关注

回复
举报

78

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
用TransparentBlt函数就可以,
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
TransparentImage
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

4
 
设置透明属性 Transparent
 
 
 

回复

48

帖子

0

TA的资源

一粒金砂(初级)

5
 
SetBkMode(TRANSPARENT)
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

6
 
SetBkMode(TRANSPARENT) 记得这个是不支持的..
在download中心有一个透明的例子,忘记具体地址了,可以去看一下
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

7
 
自己绘制啊,可以实现的.
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

8
 
自绘,主要就是用按钮所在在背景色再刷一下按钮,就透明了。网上好像有个类。找找
 
 
 

回复

74

帖子

0

TA的资源

禁止访问

9
 
提示: 作者被禁止或删除 内容自动屏蔽
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

10
 
各位大哥,是EVC不是VC的啊,哪位好心人搜索一下贴个连接给我,我怎么也找不到,太感谢了!
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

11
 
使用CCeButtonST类吧
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

12
 
CCeButtonST中没有透明按钮的功能啊,KevinCEC大哥如果你的版本有透明按钮可否mail一份给我,太谢谢了!!shaowei808@163.com
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

13
 
默认不是就透明的啊?! 背景颜色不要设置....


如果自绘的话,那么以下函数是基础
//画透明图片
void CMyButton::DrawTransParent(CBitmap &bmp,int const x,int const y,int const cx,int const cy,
                                                        int const srcx,int const srcy,CDC *pDC,COLORREF TransparentColor)
{
        //定义源、掩码、透明绘制环境
        CDC  SrcDC,MaskDC,TransDC;
        //定义掩码、透明位图
        CBitmap MaskBmp,TransBmp;
        BITMAP  bm;
       
        //创建源、掩码、透明绘制环境
        SrcDC.CreateCompatibleDC(pDC);
        MaskDC.CreateCompatibleDC(pDC);
        TransDC.CreateCompatibleDC(pDC);
       
        //得到位图结构
        bmp.GetBitmap(&bm);
        //创建透明位图
        TransBmp.CreateCompatibleBitmap(pDC,cx,cy);
        //创建掩码位图
        MaskBmp.CreateBitmap(cx,cy,1,1,NULL);
       
        //将透明位图对象选入到透明绘图环境
        CBitmap *pTransBmp = TransDC.SelectObject(&TransBmp);
        //将目标位图绘制到透明位图中
        TransDC.BitBlt(x,y,cx,cy,pDC,srcx,srcy,SRCCOPY);
       
        //将实际位图对象选入源绘图环境
        CBitmap *pSrcBmp = SrcDC.SelectObject(&bmp);
       
        //设置背景为透明模式
        SrcDC.SetBkMode(TRANSPARENT);
        //设置背景色
        if (TransparentColor)
                SrcDC.SetBkColor(TransparentColor);
        else
        {
                COLORREF col = SrcDC.GetPixel(0,bm.bmHeight-1);
                SrcDC.SetBkColor(col);
        }
       
        CBitmap *pMaskBmp = MaskDC.SelectObject(&MaskBmp);
       
        //将源绘图环境绘制到掩码绘图环境中
        MaskDC.BitBlt(x,y,cx,cy,&SrcDC,0,0,SRCCOPY);
       
        //将源位图和透明位图进行异或操作融合
        TransDC.BitBlt(x,y,cx,cy,&SrcDC,0,0,SRCINVERT);
        //将透明位图和掩码位图进行与操作
        TransDC.BitBlt(x,y,cx,cy,&MaskDC,0,0,SRCAND);
        //再将源位图和透明位图进行异或操作
        TransDC.BitBlt(x,y,cx,cy,&SrcDC,0,0,SRCINVERT);
       
        //此时将透明位图绘制到目标设备上
        BOOL bRet = pDC->BitBlt(x,y,cx,cy,&TransDC,srcx,srcy,SRCCOPY);
       
        //绘制绘图对象,并释放相应绘图环境和位图对象
        SrcDC.SelectObject(pSrcBmp);
        SrcDC.DeleteDC();
       
        TransDC.SelectObject(pTransBmp);
        TransBmp.DeleteObject();
        TransDC.DeleteDC();
       
        MaskDC.SelectObject(pMaskBmp);
        MaskDC.DeleteDC();
        MaskBmp.DeleteObject();
}
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

14
 
http://www.codeproject.com/kb/mobile/

CTRL + F

button

 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

15
 
KevinCEC大哥,用这个方法是不是和VC版本的ButtonST的透明原理一样,我试了下,最后是太透明,连对话框都像穿了个洞一样...也就是多透明了一层,我是要透明到对话框上,而这个方法是透明到了桌面上去了...
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

16
 
CCeButtonST 应该和ButtonST 方法差不多吧. 都是一个作者所出. 我试过了, 不设置背景的话,默认是透明的. 当然字体不透明的.
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(初级)

17
 
http://download.eeworld.net/source/256391
看看这个是不是你想要的.
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

18
 
happytt大哥给的链接果然有用,同时也感谢其他各位大哥的帮助!
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

19
 
mark
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

20
 
标记一下,学习。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表