c++ - 有没有办法从内存文件处理程序加载图标?

标签 c++ icons wxwidgets

我正在编写 wxWidgets 应用程序,我在其中导入 .ICO 文件作为标题。我正在尝试使用 wxMemoryFSHandler 使这个图标(以及其他图标)可以作为文件访问。我正在使用以下代码来执行此操作:

wxFileSystem::AddHandler(new wxMemoryFSHandler);
wxMemoryFSHandler::AddFileWithMimeType(
   "app_inactive.ico",
   CsiWebAdmin_ico,
   sizeof(CsiWebAdmin_ico),
   "image/vnd.microsoft.icon");

不幸的是,如果我尝试从这个"file"加载一个图标,如下所示,它不起作用。当我逐步查看 MSW 源代码 (wx 2.8.10) 时,我可以看到加载程序从未尝试解析虚拟文件名。

wxIcon icon("memory:app_inactive.ico");

我也试过以下方法:

wxIcon icon(wxIconLocation("memory:app_inactive.ico"));

并遇到了相同的结果。

我意识到我可以使用资源来加载这些文件,但是当需要将我的应用程序移植到 GTK 时,我仍然会面临同样的困境。有什么明显的东西是我遗漏的吗?

最佳答案

您是否尝试设置应用程序图标?然后看wxIconBundle。我使用这段代码:

    wxFileName frameIconFile = your_resources_folder;
    frameIconFile.SetFullName("appicon.ico");
    wxIconBundle frameIcons(frameIconFile.GetFullPath(),wxBITMAP_TYPE_ICO);
    mainFrame->SetIcons(frameIcons);

图标包(它是一个包含多个图标的文件)在应用程序启动时加载。 为了构建图标包,我使用了 IcoFX (http://icofx.ro/)。

关于c++ - 有没有办法从内存文件处理程序加载图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4513763/

相关文章:

html - 如何为 Font Awesome 图标的透明区域添加颜色

jsf - Primefaces 更改图标从 p :rowEditor

c++ - wxWidgets 工具栏文本对齐

c++ - wxBitmap中已弃用的方法?

c++ - 二叉树用零填充

带嵌入式服务器的 C++ Web 框架?

android - 以编程方式获取 PNG 或 BMP 格式的 Android 包图标

c++ - 未定义行为 (UB) 以实现余地为条件的程序是否为具有无条件 UB 的程序?

c++ - 无法从挂起进程的单独线程中读取管道

python - PyDeadObjectError 和状态栏