使用 Gimp 修改 MFC MS Visual Studio 2019 应用程序的工具栏

Posted

技术标签:

【中文标题】使用 Gimp 修改 MFC MS Visual Studio 2019 应用程序的工具栏【英文标题】:Modify Toolbar for MFC MS Visual Studio 2019 app with Gimp 【发布时间】:2021-05-26 16:12:12 【问题描述】:

我正在尝试使用 GIMP 2.10.24(也尝试使用 2.9)为 Visual Studio 2019 的资源编辑器中的 MFC 应用程序修改工具栏的 BMP 文件。

使用these explanations,我可以保存 BMP 文件,以便它在 Visual Studio 中打开。 我还将模式设置为 RGB 并确保没有 alpha 通道。

MS VS 编辑器的标题为

0x0, 1 bit, BMP

和以前一样。

应用程序构建正常,但是当我运行它时,

VERIFY(toolBar->LoadToolBar(nID));

因异常而失败。

我还需要做什么才能让我的工具栏再次加载吗?

提前致谢!

【问题讨论】:

BMP 文件格式非常复杂,几乎没有人能正确理解。只是为了确保您的位图有效,在 MS Paint 中打开它,然后再次保存。尽管(显然)您使用的是单色(1bpp)位图似乎很奇怪。 你说得对,看到“1 bit”令人惊讶……尤其是当我在 Gimp、Visual Studio 和 Paint 中看到颜色时!从 Paint 中保存回来使它在单色模式下工作(但我失去了颜色)。另存为 16 种颜色会在工具之间添加空白图标。保存为 256 个作品,但会搞砸颜色(它们在油漆和工作室中显示正常)。保存为 24 位使其再次崩溃。奇怪的。 MS VS 文档讨论了为工具栏导出和导入位图,但我的 VS 2019 中只有“导出”,而不是“导入”。:-( (docs.microsoft.com/en-us/cpp/windows/…) 好的,解决了一个难题:GIMP 无法写入符合要求的 BMP 文件。考虑到 Adob​​e Photoshop 也不会,这并不奇怪。无论如何,如果图像被识别为单色图像,但您看到的是颜色,则无法查看 BMP 文件。它可能是一个 ICO,由单色蒙版和颜色信息组成。您能否提供问题中图像数据的十六进制转储? 我记得我不得不将 GIMP 降级到 2.6.0 版,因为新生成的位图无法与我的 MFC 同化。您可以通过oldversion.com/windows/the-gimp-2-6-0 获取 回到基础 - 首先使用资源编辑器创建工具栏资源。然后,关闭解决方案,将 res 文件夹中的图像文件的特征与您自己的图像文件进行比较,看看它们有何不同。此外,请考虑在 IDE 和属性中显示图像的屏幕截图,以及来自 RC 文件的适当图像数据的 sn-p。 【参考方案1】:

我终于找到了一个适用于最新版本 GIMP 的解决方案(感谢所有做出贡献的人!):

请勿转换为 RGB!混淆来自这样一个事实,即“高级选项”仅在您转换为 RGB 时才处于活动状态,但您不需要高级选项。也许这在 MSVS 或 GIMP 中的某个时间点发生了变化,因为不同论坛上的解释对这一点感到困惑...... 图像/模式 -> 索引颜色(请勿更改)

文件/导出为...:

运行长度编码:不检查 兼容性选项:不要写色彩空间信息:检查 高级选项:无法访问,但这并不重要! 附加技巧:您可以将工具栏的按钮(不是整个工具栏)从 Gimp 一个一个地复制粘贴到 VS(如果 Gimp 中的颜色设置如上所述;如果不是,则松散/混合颜色)。

使用 Microsoft Visual Studio 2019 企业版和 GIMP 2.10 进行测试。

【讨论】:

以上是关于使用 Gimp 修改 MFC MS Visual Studio 2019 应用程序的工具栏的主要内容,如果未能解决你的问题,请参考以下文章

MS Visual Studio 2013 MFC 应用程序:为消息/输出服务创建文本框

如何在 MFC 中支持多种文档类型,例如 MS Office 应用程序或 Visual Studio

在 Visual C++ 6.0 MFC 中,CString 是不是可以像简单类型而不是类一样被安全地对待?

(隐藏?)影响 C/C++ 编译的 MS Visual Studio 设置

Visual Studio MFC 在键入/动态时更改编辑控件中的文本

使用 Microsoft Visual C++ MFC 2021 进行编程