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