1

我正在使用 Visual C++ 2010 中由 MFC 向导生成的小型应用程序,我只是决定将我自己的位图放入资源中以替换显示在功能区 UI 应用程序按钮中的三立方体 MFC 位图,又名“大理石”。

原版似乎使用黑色 (0,0,0) 作为透明度颜色,但我无法确定 Visual Studio 2010 中的 MFC Ribbon (mfc-feature-pack stuff) 东西在确定用作位图的透明度时所做的事情功能区的主图标。

功能区 (IDR_RIBBON) 的属性显示 Image=IDB_MAIN,IDB_MAIN 是 BMP 格式的 32x32 位图,从名为 main.bmp 的磁盘文件加载。

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

这是一个实际结果的例子,我希望这表明结果不是我想要的: 替代文字

顺便说一句,在应用程序按钮中使用 ICON 资源似乎是不可能的,所以我有点迷惑他们是如何取消其中的透明度的。

4

2 回答 2

2

您需要创建一个具有 Alpha 通道的 32 位位图以实现透明度。我这样做的方法不是很简单,但这是我唯一能想到的。

  • 使用 Paint.Net 将源图像转换为保留透明度的 PNG。不幸的是 Paint.Net 不支持直接创建 32 位位图。
  • 然后下载AlphaConv,它可以从 PNG 文件创建 32 位位图。
于 2010-09-29T17:55:30.980 回答
1

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

于 2010-09-29T17:30:17.133 回答