Я показываю icon
для моего приложения, использующего wxWidgets
, Я использую следующий код и использую .ico file
с 128*128
размеры. но значок отображается не острый. Как я должен сделать это острым?
Я использую следующий код:
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?
wxIcon
под Windows особенным, поскольку он может содержать несколько представлений одного и того же изображения в разных разрешениях, в то время как wxImage
содержит только одно изображение. Поэтому, когда вы загружаете .ico
подать в wxImage
Вы теряете все, кроме одной иконы.
Вместо этого вы должны использовать специализированные wxIconBundle класс вместо. Это также сделает ваш код намного проще, в основном вы просто можете
SetIcon(wxIconBundle(IconImagePath));
Других решений пока нет …