我正在使用wxWidgets
显示我的应用程序的icon
。我使用以下代码并使用具有128*128
维度的.ico file
。但是显示的图标不清晰。我应该如何使其锋利? 我使用以下代码:
bool ImageFileToIcon(wxString &path, wxIcon &icon)
{
wxImage image;
if (!image.LoadFile(path))
{
wxLogError(wxT("Couldn't load image from '%s'."), path.c_str());
return false;
}
icon.CopyFromBitmap(image);
return true;
}
someFunction()
{
wxIcon tempIcon;
ImageFileToIcon(IconImagePath, tempIcon);
SetIcon(tempIcon);
}
我该怎么办,我应该使用维度较小的.ico文件还是需要更改代码?有没有像.ico文件包含所有尺寸,我们必须根据屏幕分辨率进行调整。如何在wxWidgets中做到这一点?
Windows下的wxIcon
很特别,因为它可以包含不同分辨率的同一图片的多个表示形式,而wxImage
只包含一个图像。因此,当您将.ico
文件加载到wxImage
时,除了一个图标外,您会丢失所有图标。
相反,您应该改用专用的 wxIconBundle 类。它还会使您的代码更简单,基本上您可以
SetIcons(wxIconBundle(IconImagePath));
来自 VZ 的答案已过时,因为 API 在版本 3.1.3 中发生了更改。 现在,您将像这样做一个图像图标:
wxInitAllImageHandlers(); // Init Image Handlers first
SetIcons(wxIconBundle("your/path/to/your/logo/or/image")); // watch out for the s in the function call SetIcons(), not SetIcon() anymore