Кто-нибудь знает, где я могу найти стандартные значки панели инструментов диалогового окна файла Windows?
-
19-09-2019 - |
Вопрос
Я пытаюсь реализовать свою собственную реализацию IShellBrowser, потому что мне нужно иметь более полнофункциональное диалоговое окно «Открыть файл и сохранить как», чем позволяет Windows, совместимое с XP (и в идеале с W2000) *
На этом этапе мне нужно добавить стандартную панель инструментов, которую вы видите в правом верхнем углу диалогового окна (стили манифеста для XP и более ранних версий) — кнопку «Назад», кнопку родительской папки, кнопку новой папки и раскрывающийся список «Инструменты». .
Но пока мне не удалось найти эти значки/изображения.Я просмотрел USER32.dll, comdlg32.dll, comctl32.dll, но не нашел ничего подходящего.
Я мог бы просто сделать снимки экрана приложения, где я могу их найти, но, возможно, было бы полезнее знать, откуда они берутся, чтобы я мог получить доступ к различным версиям этих кнопок (высокое разрешение, низкое разрешение, мелкий цвет, глубокий цвет). , и т. д.).
Есть идеи?
[Редактировать:Мне также нужно, чтобы он был совместим с Vista и Windows 7.Просто начиная с Vista они сломали старую общую модель диалога, а их новая модель повредила мозг, ИМХО - у меня больше нет достаточного доступа к состоянию диалога, чтобы выполнять необходимые обязанности, которые раньше выполняли наши диалоги - так что мы вынуждены подойти к проблеме с другой стороны]
Решение
Пытаться shell32.dll
, в Windows\System32.
Другие советы
Я нашел эту таблицу, содержащую список системных файлов, содержащих встроенные значки.Возможно, в одном из них вы найдете то, что ищете:
Filename Number of Icons
-----------------------------
compstui.dll 99
comres.dll 38
cryptui.dll 20
csc.dll 22
dsuiext.dll 35
explorer.exe 18
iexplore.exe 23
inetcpl.cpl 34
inetcpl.dll 14
mmcndmgr.dll 129
mmsys.cpl 40
moricons.dll 140
netshell.dll 157
ntbackup.exe 26
pfmgr.dll 38
progman.exe 48
setupapi.dll 37
SHDOCVW.DLL 35
shell32.dll 238
stobject.dll 31
wiashext.dll 23
wmploc.dll 60
xpsp2res.dll 19
Попробуйте заглянуть imageres.dll
.Там вы найдете большую часть ресурсов изображений для Vista.
перспективный стильhttp://www.freeiconsweb.com/Vista-Style-Software-Icons-Set.html
не Windows, но действительно полныйhttp://www.freeiconsweb.com/Webmaster-Pixel-Icon-Set.html
просто ссылка на скачивание внизу
Если вы просто запросите у оболочки список изображений, она вам его предоставит.
И тогда вы сможете использовать те, которые захотите.Ура.
Редактировать:Выглядит как SHGetImageList() может быть, это более лучший способ сделать это.
Используйте свои собственные значки.Идентификаторы ресурсов в Shell32.dll не документированы и могут измениться в Центре обновления Windows.
в винде их 3 "стандартный" панели инструментов.От CommCtrl.h
(источник):
Индексы для изображений документированы, и его можно найти в CommCrtl.h
.Например, Стандартный индексы изображений:
- СТД_CUT (0):Операция обрезки.
- STD_COPY (1):Операция копирования
- СТД_ПАСТА (2):Операция вставки.
- STD_UNDO (3):Отменить операцию.
- СТД_РЕДОВ (4):Повторить операцию. (да, опечатка)
- STD_DELETE (5):Удалить операцию.
- STD_FILENEW (6):Новая файловая операция.
- STD_FILEOPEN (7):Операция открытия файла.
- STD_FILESAVE (8):Сохранить операцию с файлом.
- STD_PRINTPRE (9):Операция предварительного просмотра печати.
- СТАНДАРТ_СВОЙСТВА (10):Операция свойств.
- СТД_ХЕЛП (11):Помогите операции.
- STD_FIND (12):Найдите операцию.
- STD_REPLACE (13):Заменить операцию.
- СТД_ПРИНТ (14):Операция печати.
Вы загружаете стандартный набор изображений в список изображений панели инструментов, отправляя TB_LOADIMAGES сообщение:
// hWndToobar is the window handle of the toolbar control.
SendMessage(hWndToolbar,
TB_LOADIMAGES,
(WPARAM)IDB_STD_SMALL_COLOR,
(LPARAM)HINST_COMMCTRL);