Visual C++ 6.0
Есть приложение, состоящее из функции WinMain. Никаких окон, но есть MessageBox. При его выводе на панели задач и в заголовке диалога появляется стандартная иконка, с которой был создан проект через Wizard->Projects->Win 32 Application->"Hello World" App.
В ресурсах остались только мои иконки IDI_SMALL и еще одна
Было замечено, что при первом создании exe в него попадает иконка из ресурся, которую потом меняй, не меняй — толу никакого
Здравствуйте Vsevolod_P, Вы писали:
VP>Было замечено, что при первом создании exe в него попадает иконка из ресурся, которую потом меняй, не меняй — толу никакого
так не бывает, может поменяли только 32х32 а 16х16 нет?
Здравствуйте Odi$$ey, Вы писали:
VP>>Было замечено, что при первом создании exe в него попадает иконка из ресурся, которую потом меняй, не меняй — толу никакого
O$>так не бывает, может поменяли только 32х32 а 16х16 нет?
Сейчас оставлена только одна иконка 32x32. Выполнено Rebuild All. Ничего не дало. Может проект послать?
Здравствуйте Vsevolod_P, Вы писали:
VP>Здравствуйте Odi$$ey, Вы писали:
VP>>>Было замечено, что при первом создании exe в него попадает иконка из ресурся, которую потом меняй, не меняй — толу никакого
O$>>так не бывает, может поменяли только 32х32 а 16х16 нет?
VP>Сейчас оставлена только одна иконка 32x32. Выполнено Rebuild All. Ничего не дало. Может проект послать?
VP>>>>Было замечено, что при первом создании exe в него попадает иконка из ресурся, которую потом меняй, не меняй — толу никакого
O$>>>так не бывает, может поменяли только 32х32 а 16х16 нет?
VP>>Сейчас оставлена только одна иконка 32x32. Выполнено Rebuild All. Ничего не дало. Может проект послать?
O$>давай
скомпилял, запустил, MessageBox есть, иконок никаких нет ни на панели задач, ни в заголовке MessageBox.
Вариант — есть проги, в которых иконка устанавливается через ... — для класса окна, тогда она начинает вылезать на всех запускаемых диалогах. Не живет ли у тебя на машине такая?
Здравствуйте Odi$$ey, Вы писали:
VP>>>Сейчас оставлена только одна иконка 32x32. Выполнено Rebuild All. Ничего не дало. Может проект послать?
O$>>давай
O$>скомпилял, запустил, MessageBox есть, иконок никаких нет ни на панели задач, ни в заголовке MessageBox.
Я то, что ты прислал тоже скомпилил. Работает как надо. А ты что-нибудь менял?
O$>Вариант — есть проги, в которых иконка устанавливается через ... — для класса окна, тогда она начинает вылезать на всех запускаемых диалогах. Не живет ли у тебя на машине такая?
Ага... WinXP
А на Win2000 тоже никаких иконок нет.
Здравствуйте Vsevolod_P, Вы писали:
VP>>>>Сейчас оставлена только одна иконка 32x32. Выполнено Rebuild All. Ничего не дало. Может проект послать?
O$>>>давай
O$>>скомпилял, запустил, MessageBox есть, иконок никаких нет ни на панели задач, ни в заголовке MessageBox. VP>Я то, что ты прислал тоже скомпилил. Работает как надо. А ты что-нибудь менял?
нет ничего
O$>>Вариант — есть проги, в которых иконка устанавливается через ... — для класса окна, тогда она начинает вылезать на всех запускаемых диалогах. Не живет ли у тебя на машине такая?
VP>Ага... WinXP VP>А на Win2000 тоже никаких иконок нет.
так, я вообще перестал что-либо понимать когда ты ее раньше компилял эта иконка появлялась и под XP и под 2000 или как? А сейчас ее нет и там и там или как?
O$>>>Вариант — есть проги, в которых иконка устанавливается через ... — для класса окна, тогда она начинает вылезать на всех запускаемых диалогах. Не живет ли у тебя на машине такая?
VP>>Ага... WinXP VP>>А на Win2000 тоже никаких иконок нет.
O$>так, я вообще перестал что-либо понимать когда ты ее раньше компилял эта иконка появлялась и под XP и под 2000 или как? А сейчас ее нет и там и там или как?
Итак (мои догадки):
WinXP — при первой компиляции WinXP каким-то образом запоминает иконки из exe файла и показывает их на TaskBar'е для MessageBox'ов.
Изменение иконки в проекте и полная перекомпиляция влияет только на explorer, но не на TaskBar. После перезагрузки XP обновляет информацию и показывает на TaskBar измененную иконку (explorer на изменение иконки реагирует сразу, без перезагрузки)
Win2000 — у MessageBox на TaskBar нет иконки вообще
Следовательно этот вопрос актуален (скорее всего) только для WinXP
Здравствуйте Vsevolod_P, Вы писали:
VP>Visual C++ 6.0 VP>Есть приложение, состоящее из функции WinMain. Никаких окон, но есть MessageBox. При его выводе на панели задач и в заголовке диалога появляется стандартная иконка, с которой был создан проект через Wizard->Projects->Win 32 Application->"Hello World" App. VP>В ресурсах остались только мои иконки IDI_SMALL и еще одна
VP>Было замечено, что при первом создании exe в него попадает иконка из ресурся, которую потом меняй, не меняй — толу никакого
VP>Вопрос: как ее подменить?
Есть такой страшный файл с "говорящим" именем ShellIconCache, появился он, если память меня не подводит, еще в Win95 и лежит в каталоге с виндами — либо WINDOWS, либо WINNT (если, конечно, у Вас не чересчур богатое чувство юмора, чтобы менять имя каталога для виндов с умолчательного на свое ).
Проблемы с иконами на ярлыках на десктопе/таскбаре, очень похожие на описываемые Вами, как правило, лечатся удалением этого файла и перезагрузкой сразу после удаления.
Эхплорер же как окно "проводника", насколько я понимаю, не кэширует иконы, а каждый раз из файла тащит.