gpt4 book ai didi

c++ - CToolBar (MFC) 上带有 alpha channel 的 32 位图像

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:04:41 27 4
gpt4 key购买 nike

是否可以在 MFC 的 CToolBar 控件上显示带有 alpha channel 的 32 位图像?目前,我的工具栏使用由 Visual Studio 2010 中的“文件名”属性分配给它的 4 位图像。

提前致谢!

最佳答案

迟到的答案,但我遇到了同样的问题,所以万一其他人正在寻找解决方案:

具有 8 位 alpha 的 32 位图像开箱即用,至少在 XP 和更新版本上是这样。您需要一个 32 位 alpha BMP 格式的 BMP 文件,许多应用程序无法正确保存该格式。我的方法是先生成 PNG 图像,然后使用这个小工具将它们转换为 32 位 BMP:https://github.com/thomerow/png2bmp32

一旦有了这样的文件,就应该可以使用 toolbar.LoadBitmap(...) 毫无问题地加载它。如果您正在为工具栏使用图像列表,或者如果您想使用图像列表在其他控件(例如 TreeView )中显示图标,请像这样加载图像:

CBitmap bitmap;
bitmap.LoadBitmap(...);
imageList.Create(WIDTH_OF_ICONS, HEIGHT_OF_ICONS, ILC_COLOR32, NUMBER_OF_IMAGES, 1);
imageList.Add(&bitmap, RGB(255, 0, 255)); // Color key isn't important.
bitmap.Detach();

希望这对您有所帮助!

编辑:我注意到“简单的”LoadBitmap() 在此处的 64 位构建中不知何故不起作用。我求助于使用上述使用图像列表的方法,结合 toolbar.GetToolBarCtrl().SetImageList(&imageList);

关于c++ - CToolBar (MFC) 上带有 alpha channel 的 32 位图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10722469/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com