高分求助:怎么在分层窗口中使用GDI函数绘制出带alpha的文字?

sumos 2013-01-08 11:50:34
我在程序中使用了UpdateLayeredWindow函数来绘制分层窗口,但是GDI的绘制文字函数DrawText不带alpha通道,所以显示不出来,就算配合AlphaBlend也不行。请问如何给这个文字加上alpha通道呢?(注:我知道gdi+可以,但是gdi+效率摆在那儿,不能用啊)
请求各位大侠给点解决方法?
...全文
402 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
xistrue 2013-01-10
  • 打赏
  • 举报
回复
用GDI+不就可以了吗
sumos 2013-01-09
  • 打赏
  • 举报
回复
未能找到解决方法。
qdtroy 2013-01-08
  • 打赏
  • 举报
回复
引用 4 楼 sha_jinhao 的回复:
引用 3 楼 zhoujielunzhimi 的回复:引用 2 楼 sha_jinhao 的回复:能分子窗口么? 分子窗口?不明白你的意思 如果是说,分两层来实现,底层是layered,上层采用过滤色透明,这个效果不好。 如果是说,分层窗口是子窗口,这个win8才支持。 能透明子窗体么?
Windows 8 可以
jimette 2013-01-08
  • 打赏
  • 举报
回复
引用 3 楼 zhoujielunzhimi 的回复:
引用 2 楼 sha_jinhao 的回复:能分子窗口么? 分子窗口?不明白你的意思 如果是说,分两层来实现,底层是layered,上层采用过滤色透明,这个效果不好。 如果是说,分层窗口是子窗口,这个win8才支持。
能透明子窗体么?
sumos 2013-01-08
  • 打赏
  • 举报
回复
引用 2 楼 sha_jinhao 的回复:
能分子窗口么?
分子窗口?不明白你的意思 如果是说,分两层来实现,底层是layered,上层采用过滤色透明,这个效果不好。 如果是说,分层窗口是子窗口,这个win8才支持。
jimette 2013-01-08
  • 打赏
  • 举报
回复
能分子窗口么?
邓学彬 2013-01-08
  • 打赏
  • 举报
回复
关注,我也想知道有什么好的解决方法.
sumos 2013-01-08
  • 打赏
  • 举报
回复
引用 13 楼 qq6648208281 的回复:
directui 绘制有很多办法的。 可以贴图式,需要绘制的时候全部销毁清除画板,之后贴在dc上. 可以覆盖式,每次把图片覆盖在上次的图片上。不能拥有透明度. 我这个就是贴图方式的。 所有控件拥有独立的透明度。
怎么弄一个透明的hdc呢?求方法,能不能把你这个程序弄透明dc的方法告诉我呢?
Yun__ 2013-01-08
  • 打赏
  • 举报
回复

directui 绘制有很多办法的。
可以贴图式,需要绘制的时候全部销毁清除画板,之后贴在dc上.
可以覆盖式,每次把图片覆盖在上次的图片上。不能拥有透明度.
我这个就是贴图方式的。 所有控件拥有独立的透明度。
Yun__ 2013-01-08
  • 打赏
  • 举报
回复
UpdateLayeredWindow 来刷新窗口 弄一个透明的hdc 画好之后用AlphaBlend复制在窗口dc上
sumos 2013-01-08
  • 打赏
  • 举报
回复
继续求高手支招
夫人的泡泡鱼 2013-01-08
  • 打赏
  • 举报
回复
分层窗口,还没用到,学习了
qdtroy 2013-01-08
  • 打赏
  • 举报
回复
引用 6 楼 zhoujielunzhimi 的回复:
引用 5 楼 duiplus 的回复:引用 4 楼 sha_jinhao 的回复:引用 3 楼 zhoujielunzhimi 的回复:引用 2 楼 sha_jinhao 的回复:能分子窗口么? 分子窗口?不明白你的意思 如果是说,分两层来实现,底层是layered,上层采用过滤色透明,这个效果不好。 如果是说,分层窗口是子窗口,这个win8才支持。 能透……
我绘制字体用的是gdiplus
sumos 2013-01-08
  • 打赏
  • 举报
回复
引用 7 楼 CometNet 的回复:
我之前用过一个方法,算是比较折中:用GDI函数画到HBITMAP上,再用GDIPlus把这个HBITMAP画出来.
如果能用gdi+,也就不会有这个提问了。 我看了一下,金山卫士、迅雷,他们的进程都加载了gdiplus.dll,而且迅雷的安装目录下还有这个XLGraphicPlus.dll。 我有点怀疑,directui应该不是基于updatelayeredwindow来做的?directui的思想倒是好理解。 360安全卫士也是用的directui,但是它没有分层效果。有分层效果的是 360的 自动清理垃圾工具,当然这个界面还是很小的,而且我在拖动时竟然发现,背景图在 360安全卫士 下面,而控件却在360安全卫士上面,这和我之前用 双层窗口时遇到的问题一样,可见它也是用的双层窗口。
邓学彬 2013-01-08
  • 打赏
  • 举报
回复
我之前用过一个方法,算是比较折中:用GDI函数画到HBITMAP上,再用GDIPlus把这个HBITMAP画出来.
sumos 2013-01-08
  • 打赏
  • 举报
回复
引用 5 楼 duiplus 的回复:
引用 4 楼 sha_jinhao 的回复:引用 3 楼 zhoujielunzhimi 的回复:引用 2 楼 sha_jinhao 的回复:能分子窗口么? 分子窗口?不明白你的意思 如果是说,分两层来实现,底层是layered,上层采用过滤色透明,这个效果不好。 如果是说,分层窗口是子窗口,这个win8才支持。 能透明子窗体么? Windows 8……
看你的名字,猜测你了解directui。 那么在directui下,你是怎么绘制文字的呢?

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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