Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t使用带有MFC按钮控件的透明BMP_Mfc_Ide_Imagebutton_Visual Studio 2017 - Fatal编程技术网

Can';t使用带有MFC按钮控件的透明BMP

Can';t使用带有MFC按钮控件的透明BMP,mfc,ide,imagebutton,visual-studio-2017,Mfc,Ide,Imagebutton,Visual Studio 2017,我真的很困惑 我试图在IDE中的对话框中添加一个MFC按钮控件 我希望它只是显示一个BMP文件。我已经在对话框中显示了另一个透明的背景 这是“良好”按钮的图像: 这是我下载的另一个按钮图像。但它是PNG: 我尝试将其转换为32位BMP,使其透明: 但它正在失败。它以黑色背景显示: 你可以在截图上看到下面的图片显示OK。但不是新的。如何修复此图像文件 更新: 最后我用了一个不同的图像作为问号。但对于其他人,我最终使用PNG并手动使用load方法,如下所述: 您是如何将png转换为bmp的?

我真的很困惑

我试图在IDE中的对话框中添加一个MFC按钮控件

我希望它只是显示一个BMP文件。我已经在对话框中显示了另一个透明的背景

这是“良好”按钮的图像:

这是我下载的另一个按钮图像。但它是PNG:

我尝试将其转换为32位BMP,使其透明:

但它正在失败。它以黑色背景显示:

你可以在截图上看到下面的图片显示OK。但不是新的。如何修复此图像文件

更新:

最后我用了一个不同的图像作为问号。但对于其他人,我最终使用PNG并手动使用load方法,如下所述:


您是如何将png转换为bmp的?它不适合油漆。但Gimp是这样的。我再也没有那台电脑了,但我记得有一件事让我感到困惑,那就是格式。不要相信我的建议,但如果我没记错的话,我必须在对话框的
32位
部分选择
A8 R8 G8 B8
。我现在确认我使用了我在之前评论中链接的代码,使用
HBITMAP hbmp加载PNG图像
hbmp=::MyButtonLoadBitmap(IDB_OK)
m_btnOK.SetBitmap(hbmp)顺便说一句,您可能需要预先乘以alpha值,因为我不知道它是否在后面使用了
AlphaBlend
函数。因此,请参考并仔细阅读
AlphaFormat
参数说明。因此,我将把代码放在下一个注释中,因为它不适合这里(int y=0;y您是如何将png转换为bmp的?它不适用于绘画。但它适用于Gimp。我不再拥有那台计算机,但我记得有一件事让我感到困惑的是格式。请不要肯定我的建议,但如果我回忆正确,我必须在对话框的
32位
部分选择
A8 R8 G8 B8
。I现在确认,我使用我在上一条评论中链接的代码,使用
HBITMAP hbmp;
hbmp=::MyButtonLoadBitmap(IDB_OK);
m_btnOK.SetBitmap(hbmp)加载PNG图像
BTW,您可能必须预先乘以alpha值,因为我不知道它是否在后面使用了
AlphaBlend
函数。因此,请参考并仔细阅读
AlphaFormat
参数说明。因此,我将在下一条注释中添加代码,因为它不适合此处。
for(int y=0;y