Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1] 2  Все   Вниз
  Печать  
Автор Тема: Иконка приложения  (Прочитано 37075 раз)
0 Пользователей и 14 Гостей смотрят эту тему.
АлексейК
Участник

ru
Offline Offline
Пол: Мужской

« : 04-12-2008 10:09 » 

Подскажите, пожалуйста, как для главного и для дочерних окон MDI загрузить свои иконки. Пробовал CWinApp::LoadIcon из InitInstance() - не получается.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 04-12-2008 10:25 » 

главное окно валяется тут

theApp.m_pMainWnd

дочерние - с ходу не смогу подсказать, никогда MDI не применял, только SDI.
Но из вью просто родителя достать (GetParent()) можно попробовать в OnInitialUpdate()
Записан

АлексейК
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 04-12-2008 11:38 » 

Разобрался, спасибо.

В InitInstance() после m_pMainWnd = pMainFrame; вставил: m_pMainWnd->SetIcon(LoadIcon(IDI_ICON1), true);

В OnCreate дочернего окна вставил SetIcon(AfxGetApp()->LoadIcon(IDI_ICON2), true);

где IDI_ICON1 и IDI_ICON2 идентификаторы иконок главного и дочернего окон.
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #3 : 04-12-2008 11:40 » 

А если сразу в ресурсах нужные задать?
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
АлексейК
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 04-12-2008 11:44 » 

Пробовал сразу задать. Не сработало.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #5 : 04-12-2008 11:48 » 

так это только для диалогов так прокатит, как для остального то ? Ну я вообще то не заморачивался этим никогда...
Записан

АлексейК
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 04-12-2008 11:52 » 

Почему только для диалогов? SetIcon() член CWnd и должна работать для всех классов окон.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #7 : 04-12-2008 12:36 » 

Почему только для диалогов? SetIcon() член CWnd и должна работать для всех классов окон.
я же про редактор ресов имею в виду )
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #8 : 04-12-2008 13:34 » 

Пробовал сразу задать. Не сработало.

А что ты пробовал? Если MDI проект создан "нормально" - с мастером, то в разделе Icon создаются две иконки IDR_MAINFRAME и IDR_xxxx_TYPE - превая для проги, вторая для документов, они же заносятся в реестр. Для главного окна бреётся первая, для клиентских - вторая.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #9 : 04-12-2008 13:41 » 

Если вдруг проект завален иконками, то найти нужную для клиента можно посмотрев первый параметр конструктора при создании шаблона документа в APP объекте. Там в InitInstance() должно быть что-то вроде такого:

        m_pMultiDocTemplate = new CMultiDocTemplate(IDR_xxx,

Если уж и с иконкой главного окна всё плохо, то посмотроите на параметр при создании MAinFrame там же

   if(!pMainFrame->LoadFrame(IDR_MAINFRAME)) ...
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
АлексейК
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #10 : 04-12-2008 21:27 » 

Я пробовал отредактировать изображение в созданных мастером иконках IDR_MAINFRAME и IDR_xxxx_TYPE, но после запуска мои каракули не имели места быть, т.е. иконки отобразились в исходном виде.
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #11 : 05-12-2008 12:14 » 

Значит ты не перекомпилировал ресурсы. Удаляй прмежуточные файлы. Иначе бред получается.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
АлексейК
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #12 : 07-12-2008 22:13 » 

Я перекомпилировал ресурсы (Build->Compile) и нажал Build->Clean...  и еще раз перекомпилил, но не помогло.
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #13 : 07-12-2008 22:42 » 

АлексейК, ну тогда получается, что редактор ресурсов в студии - просто никому не нужная примочка-лохотрон? Ага Три часа редактировал ресурсы, а в итоге они остались прежними. Так не бывает.

Внимательно всё проверь, что-то ты упустил из виду. А файл .aps удалять не пробовал?
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
kisilevski
Постоялец

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #14 : 08-12-2008 18:39 » 

Редактор ресурсов студии использую только для 16цветных кнопок. Иконки редактирую во внешнем струменте Microangelo Studio, каждая иконка содержит кадры для разных размеров (16х16, 32х32, 64х64) и разных палитр 16ц, 256ц, WinXP(alpha blended), импортирую из фотошопа. Винда, в зависимости от контекста и настроек, сама выбирает иконку соответствующего размера и палитры. Затем добавляю эти иконки к ресурсам и далее как обычно.
А редактор ресурсов студии, насколько я его знаю, с такими иконками просто не знает, что делать.
Записан

Ложки нет. See MSDN for details.
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #15 : 09-12-2008 09:39 » 

kisilevski, когда создаёшь новый проект, то правильные иконки уже заложены в ресурсы и если изменить из содержание (картинку), то всё в порядке. Но ты натолкнул меня на мысль.

АлексейК, может ты просто НЕ ТОТ ВАРИАНТ редактировал? А тот, который используется виндой, остался без имзенения? Ведь иконка состоит из нескольких картинок (48х48, 32х32, 16х16 плюс различные палитры) и для десктпа берётся с наибольшим разрешением, для проводника в зависимости от типа LictCtrl - самая маленькая или средняя.
« Последнее редактирование: 09-12-2008 09:41 от Джон » Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
АлексейК
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #16 : 09-12-2008 10:09 » 

Я создал новые иконки IDI_ICON1 и IDI_ICON2 и загрузил их как это было описано мною выше. Заметьте, что они создаются IDI, а не IDR как те, которые по-умолчанию в ресурсах. Меня все устраивает. Думаю, что в любом случае без вызова функции LoadIcon не обойтись.
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #17 : 09-12-2008 10:50 » 

АлексейК, нееееет. Программа по умолчанию использует именно те, которые IDR. Они передаются в качестве параметров в конструкторы MFC объектов. Почему ты не хочешь сделать правильно? Разберись один раз с этим и в будущем у тебя не будет проблем, или лучше создать ненужные трудности, а потом их героически преодолевать? Ага
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
АлексейК
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #18 : 11-12-2008 09:51 » 

IDR-иконка, которая по-умолчанию, используется для отображения экзешника программы на рабочем столе и в папочках проводника. Чтобы изменить последнюю, достаточно редактора ресурсов. Но для главного окна программы это не катит.
« Последнее редактирование: 11-12-2008 09:53 от АлексейК » Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #19 : 11-12-2008 10:23 » 

Да что ты всё загадками говоришь? Что "не катит"? Выложи проект.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
АлексейК
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #20 : 12-12-2008 10:08 » 

Проект выкладывать не буду. Создайте новый многооконный MFC проект в Visual Studio 2003, отредактируйте в нем иконку IDR. И увидите результат. Вернее, его отсутствие.
Записан
sss
Специалист

ru
Offline Offline

« Ответ #21 : 12-12-2008 10:22 » 

АлексейК, а ты не переименовывал проект? Возможно надо настроить "Resource File Name" в "Project Properties".
Записан

while (8==8)
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #22 : 12-12-2008 11:54 » 

Проект выкладывать не буду. Создайте новый многооконный MFC проект в Visual Studio 2003, отредактируйте в нем иконку IDR.

Ну ваще обнаглел!!! Мне больше делать нечего? Тебе помощь нужна или мне? Я таких проектов штук сто уже делал и всегда было "КАТИТ". Что изменится от того, если я сделаю 101ый? Я тебе лишний раз скажу, что катит, на что ты также упёрто скажешь "не катит"?

А твой проект нужен был, чтобы в НЁМ ошибку найти. Но раз ты такой упёртый - на разбирайся сам:

Лёш, ему гонору поубавить и к советам прислушиваться надо.

* TestDljaTupyx.zip (16.54 Кб - загружено 1039 раз.)
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
АлексейК
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #23 : 17-12-2008 09:10 » 


Спасибо, разобрался. В редакторе ресурсов правая кн. мыши CurrentIconImageType. Далее можно выбрать 16x16 (16 млню цветов)- для

маленьких значков (в т. ч. иконок главного окна), 32x32 - для средних значков, 48x48 - для больших значков.

Вот и все, что требовалось. И зачем для этого вам нужен был мой проект? И если вы такой умный, то это не повод для того, чтобы

хамить.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #24 : 17-12-2008 10:50 » new

нюююююю....

Цитата
В начале было Слово
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #25 : 17-12-2008 11:01 » 

Чем это я тебе интересно нахамил? Зачем ТВОЙ проект я уже кажется объяснил:

А твой проект нужен был, чтобы в НЁМ ошибку найти.

Ну или ещё раз в доступной форме - всё твоё описание проблемы говорило о том, что ты просто что-то неправильно делаешь. Для это нужен был твой проект. Так искать проблему гораздо БЫСТРЕЕ, чем давать указания тебе, потом ждать пока ты их выполнишь, напишешь результат и тд.

А то, что ты не читаешь ответы - это твоя проблема. Иначе уже давно бы всё сделал:

АлексейК, может ты просто НЕ ТОТ ВАРИАНТ редактировал? А тот, который используется виндой, остался без имзенения? Ведь иконка состоит из нескольких картинок (48х48, 32х32, 16х16 плюс различные палитры) и для десктпа берётся с наибольшим разрешением, для проводника в зависимости от типа LictCtrl - самая маленькая или средняя.

Ну и спрашивается, зачем ты задаёшь вопросы, ответы на которые игнорируешь? Чтобы потом показать какой ты умный и что САМ проблему решил? Это ли не хамство? ИМХО не самый лучший способ расчитывать на помощь в будущем.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
АлексейК
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #26 : 17-12-2008 11:21 » 

Значит, вы плохо объясняете. Если после вашего ответа я не понял что мне надо исправить, куда лезть и на что смотреть.

Создать новый проект - это считанные секунды. У вас есть время базарить со мной, а на это у вас времени нет.

Передавать свои проекты кому-то я не могу. Хотя бы из-за секретности (разглашение гос. тайны). Посадить могут.

И я не заставляю вас отвечать на вопросы, так что не надо мне говорить "ты обнаглел" и кидать экзешник "для тупых"
« Последнее редактирование: 17-12-2008 11:39 от АлексейК » Записан
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #27 : 17-12-2008 11:26 » 

Нормально Джон объясняет, я не стал объяснять, потому что сказал бы всё то же самое Улыбаюсь

Создать новый проект можно было и тебе: вообще, странная мысль - упражняться с рисованием иконок на секретном проекте (даже если бэкап делается). Я обычно для подобных упражнений тестовые проекты завожу...
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #28 : 17-12-2008 11:46 » 

Ну, в принципе Вад уже всё сказал. Добавить нечего. Полезности этой темы не вижу.

Жалобы и обиды кидать в ЛС.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
АлексейК
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #29 : 17-12-2008 20:20 » 


Извините меня, Джон, если чем-то обидел. Спасибо вам большое за помощь. Я конечно должен был выложить вам пробный проект. Но на

вашем месте, я бы ваш файл  TestDljaTupyx.zip сопроводил инструкцией, описывающей по шагам что вы делали в редакторе ресурсов

прежде чем этот файл получить.
Записан
Страниц: [1] 2  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines