如何实现PNG 在mobile 6.0上透明呢?

ChamPagneZ 2009-06-23 09:38:24
加精
找好了好长时间,不得其法.
gdiplus在pc很好,移到mobile上没有效果.
有哪位兄弟做过,高分伺候.
是C++.
网络上太多C#的实现,自己看不太明白,如果哪位知道从C#转到C++,也麻烦告知一二
...全文
1183 36 打赏 收藏 转发到动态 举报
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
mir5465 2011-04-20
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 cytlyy 的回复:]
参考:
hBitmap=LoadBitmap(g_hInst,MAKEINTRESOURCE (IDB_BITMAP6));//这里可以用其他方法加载其他格式的图片,如SHLoadImageFile
hdcMem = CreateCompatibleDC(hDC);
SelectObject(hdcMem,hBitmap);
bf.BlendOp = AC_SRC_OVE……
[/Quote]

这个方法载入的图片,如果有圆角,圆角区域用其他颜色标志,这样显示出来的图片忽略色是无法去掉的,尝试过,透明是可以实现的,但是碰到上述情况是无法解决!!!
ChamPagneZ 2009-06-25
  • 打赏
  • 举报
回复
我说怎么结贴了还有人在回,上主页了,丢人啊。
那个谁,搞C#的,撤下来吧,感觉这没有什么讨论价值。
ul120851 2009-06-25
  • 打赏
  • 举报
回复
SDFSDFSDFSDFASFDASDF
ul120851 2009-06-25
  • 打赏
  • 举报
回复
SDFFFFFFFFFFFFFFFFFFFFFF
yylang1987 2009-06-25
  • 打赏
  • 举报
回复
不知道, 竟然还有这种问题...
beautiful200 2009-06-25
  • 打赏
  • 举报
回复
回答的都不错,学到了
datouguai 2009-06-25
  • 打赏
  • 举报
回复
恩 挺好的 这样错了
hfrll 2009-06-25
  • 打赏
  • 举报
回复
加油!!
chaowendai 2009-06-25
  • 打赏
  • 举报
回复
楼上乱码了?赫赫
boxcc123 2009-06-25
  • 打赏
  • 举报
回复
这个也可以?
ChamPagneZ 2009-06-24
  • 打赏
  • 举报
回复
结贴了
用COM实现了,太慢,没意义.
jspboy2008 2009-06-24
  • 打赏
  • 举报
回复
我顶
QQ_456 2009-06-24
  • 打赏
  • 举报
回复
up
lb198768 2009-06-24
  • 打赏
  • 举报
回复
很不错啊
oh_my_god 2009-06-24
  • 打赏
  • 举报
回复
LoadBitMap是无法实现透明的,你只能用com来做
IImagingFactory
IImage
通过com的方式加载png,draw.这个我在mobile6下是没问题的
li_guotao 2009-06-24
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 cytlyy 的回复:]
参考:
hBitmap=LoadBitmap(g_hInst,MAKEINTRESOURCE (IDB_BITMAP6));//这里可以用其他方法加载其他格式的图片,如SHLoadImageFile
hdcMem = CreateCompatibleDC(hDC);
SelectObject(hdcMem,hBitmap);
bf.BlendOp = AC_SRC_OVER;
bf.BlendFlags = 0 ;
bf.SourceConstantAlpha = 170;
bf.AlphaFormat = 0;
AlphaBlend(hDC, x, y, width, height, h…
[/Quote]
同意此楼的做法,不过最好将Loadbitmap修改成
IImagingFactory* pImageFactory = NULL;
IImage* pImage = NULL;
方法来处理会更好。
大饼哥- 2009-06-23
  • 打赏
  • 举报
回复
wm5.0sdk以后的话,就用AlphaBlend可以实现透明。

或者,你直接加载一个透明图片也可以的。

IMAGEINGFACTORY这个应该更方便吧,不过这个我没有用,上面2个方法我都试过,可以的。

LZ可以写测试程序试试。。。。
ChamPagneZ 2009-06-23
  • 打赏
  • 举报
回复
button控件不能成功的原因,我觉得是背景窗口根本不会去画属于button窗口的区域,这让问题回到原点,必须得到button的区域的位图!!
除非不用button,这个是项目里面的东西,改动会很大,可行性不高啊
beyondma 2009-06-23
  • 打赏
  • 举报
回复
IMAGE和IMAGEFACTORY是正解。
cytlyy 2009-06-23
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 ChamPagneZ 的回复:]
引用 11 楼 cytlyy 的回复:
参考:
hBitmap=LoadBitmap(g_hInst,MAKEINTRESOURCE (IDB_BITMAP6));//这里可以用其他方法加载其他格式的图片,如SHLoadImageFile
hdcMem = CreateCompatibleDC(hDC);
SelectObject(hdcMem,hBitmap);
bf.BlendOp = AC_SRC_OVER;
bf.BlendFlags = 0 ;
bf.SourceConstantAlpha = 170;
bf.AlphaFormat = 0;
AlphaBlend(hDC, x, y, width, height, hdcMem , 0, 0, width, height, bf); …
[/Quote]
button的 drawitem的效果应该是同理的,也是颜色的叠加效果。如果你想实现好的效果,最好不用button控件,而直接用ico,或者png图标来代替直接画,这样效果会好很多。也可以符合你的要求。
加载更多回复(15)

7,655

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧