Изменить значок программы с помощью VB.NET - PullRequest
0 голосов
/ 09 ноября 2011

Я создаю файловый менеджер в VB.NET. Я включил несколько иконок в ресурсы проекта моего приложения. Как я могу сделать так, чтобы мои пользователи могли изменять значки файлов на рабочем столе, документы и т. Д. С помощью значков, которые я включил в VB.NET?

?

1 Ответ

2 голосов
/ 11 ноября 2011

"Имея указанную выше инфраструктуру и поддерживая самые сложные из всех ресурсов, структуры ресурсов версий, можно расширить библиотеку до одного из двух десятков других известных типов ресурсов. Мы начали с значков.

Расширение библиотеки для поддержки значков означает реализацию структур данных для хранения значков и подключение обратных вызовов ResourceInfo. Когда ResourceInfo обнаруживает ресурс типа 14 (RT_GROUP_ICON), он создает объект типа IconDirectoryResource. Последний создает IconResource, который загружает DeviceIndependentBitmap.

• IconDirectoryResource представляет RT_GROUP_ICON, набор ресурсов значков.

• IconResource представляет один значок RT_ICON с одним или несколькими изображениями.

• DeviceIndependentBitmap - это не ресурс, а необработанные данные, внедренные в файл со смещением, определяемым ресурсом значка, и представляют собой растровое изображение одного значка в формате .bmp.

Чтобы встроить существующий значок из файла .ico в исполняемый файл (.exe или .dll), мы загружаем файл .ico и преобразуем его в IconDirectoryResource. Структура в .ico-файле аналогична структуре иконки в исполняемом файле. Единственное отличие состоит в том, что исполняемые заголовки хранят идентификатор значка, тогда как заголовок .ico содержит смещение данных значка. См. Классы IconFile и IconFileIcon для деталей реализации. IconDirectoryResource записывается в целевой файл, затем каждый ресурс значка записывается отдельно. Обратите внимание, что текущая реализация заменяет значки с тем же Id в исполняемом файле, но не удаляет старые значки, если вы храните меньше значков изображений, чем предыдущее число, - вероятно, это следует делать, поскольку эти значки становятся осиротевшими.

Простота расширения библиотеки до значков подтвердила нашу первоначальную модель проектирования. "

Взято из ссылки Ранхиру Курая для удобства просмотра. Кредит идет к нему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...