代码之家  ›  专栏  ›  技术社区  ›  Warren P

VisualStudio 2010 -C++ MFC应用程序中带的UI——位图透明性

  •  1
  • Warren P  · 技术社区  · 14 年前

    我在玩一个MFC生成的小精灵应用程序,在Visual C++ 2010中,我只是决定把自己的位图放到资源中去替换三个立方体MFC位图,显示在带UI应用程序按钮上,又名“大理石”。

    最初的版本似乎使用黑色(0,0,0)作为透明度颜色,但我无法确定visualstudio2010中的MFC功能区(MFC featurepack stuff)在确定用作功能区主图标的位图上的透明度时做了什么。

    ribbon(IDR_ribbon)的属性显示Image=IDB_MAIN,IDB_MAIN是一个BMP格式的32x32位图,从名为主.bmp.

    这个项目中的一些位图资源看起来像我所期望的那样:一个洋红色变成透明的颜色,但是MFC主位图没有使用这个颜色方案或调色板。

    下面是一个实际结果的例子,我希望表明结果不是我想要的: alt text

    顺便说一句,在应用程序按钮中使用图标资源似乎是不可能的,所以我有点迷惑他们是如何实现它的透明性的。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Kawa    14 年前

    也许是半透明的PNG?你知道BMP文件也可以有alpha通道吗?

        2
  •  2
  •   Praetorian Luchian Grigore    14 年前

    您需要创建一个32位位图,它有一个透明的alpha通道。我做这件事的方法不是很简单,但这是我唯一能想到的。

    • 然后下载 AlphaConv 它可以从PNG文件创建32位位图。