Получить Windows 10 значков кнопок для списка переходов - PullRequest
0 голосов
/ 08 апреля 2020

Windows 10 имеет новые значки контактов в списке переходов. Черное и белое для разных тем. Старые Windows 7 значков булавки остались внутри imageres.dll, ID 5100, 5101.

Где хранятся новые значки? Как получить их с WinAPI?

enter image description here

Ответы [ 2 ]

1 голос
/ 09 апреля 2020

Иконки традиционно являются растровыми изображениями. Преимущество растровых изображений в том, что они невероятно быстро рендерится. Эта скорость имеет недостаток, а именно то, что растровые изображения хорошо выглядят только в узком диапазоне плотностей пикселей. Это было здорово, поскольку большинство дисплеев имели плотность пикселей 96 PPI (пикселей на дюйм). С увеличением плотности пикселей растровые изображения перестали быть такими же полезными, как раньше. На дисплеях с высокой плотностью значки либо будут отображаться слишком маленькими, либо их придется увеличивать с помощью всевозможных визуальных артефактов.

Для решения этой проблемы Windows 8 представил значки на основе шрифта как . Windows UI Symbol шрифт, который был заменен Windows 10 шрифтом Segoe MDL2 Assets . Шрифты основаны на векторах и могут масштабироваться в широком диапазоне без (или очень незначительных) визуальных артефактов.

Пока я не проверял, действительно ли в оболочке Windows используются значки шрифтов, значки, которые вы искомые доступны в шрифте Segoe MDL2 Assets с кодовыми точками Unicode в области частного использования :

  • U + E718 ("Pin")

    Pin font icon

  • U + E77A («Открепить»)

    Unpin font icon

1 голос
/ 08 апреля 2020

Начиная с Windows 10 версии 1903, файлы ресурсов значков были перемещены в: C:\Windows\SystemResources\imageres.dll.mun

Теперь для этих файлов добавлено новое расширение .mun вместо .mui (которые все еще существуют в Подпапки system32 и syswow64.

Также см. Ответ на вопрос Можно ли доверять индексам системных значков imageres.dll? :

правильный способ получения значков - использовать SHGetStockIconInfo . Он сообщит вам, где находится значок в текущей версии Windows.

Если вы хотите, чтобы значки текущей папки системы (которые может не быть стандартными из-за пользовательских настроек), используйте SHGetFileInfo.

...