| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Работа с ресурсами |
| Автор: HellanD 5.9.2006, 20:22 | ||
| Подскажите плиз что в коде не так! Я создал картинку (.bmp), в студийном редакторе ресурсов и хочу сделать так чтоб она вызывалась иконкой но ничего не происходит - вот взгляните!
название we.bmp! Спасибо |
| Автор: Snowy 5.9.2006, 21:12 |
| Как интересно. А что, уже появились иконки с расширением bmp? И вообще правильно. Зачем передавть в LoadIcon hInstance? Ноль и всё... Пусть винда сама гадает, что от неё хотели... Добавлено @ 21:14 ЗЫ. Зачем ресурсу расширение? Расширение должно быть у файла. Сомневаюсь, что стандартный редактор ресурсов вздумает пришлёпывать расширение ресурсу... |
| Автор: HellanD 5.9.2006, 21:16 | ||
Да это был крик души ну вот есть несколько вариантов:
Он пишет что не знает вааще IDI_ICON1 хотя я его создал.... Не будьте так строги я не волшебник я только УЧУСЬ!!!!! |
| Автор: bugmenot 5.9.2006, 21:18 | ||
HellanD
Ставил? |
| Автор: HellanD 5.9.2006, 21:21 | ||
| Я не ставил.... Щас попробовал посмотри плиз мне компилятор провел Compiling... StartButton.cpp c:\documents and settings\oleg\мои документы\visual studio 2005\projects\startbutton\startbutton\startbutton.cpp(16) : error C2664: 'LoadIconA' : cannot convert parameter 2 from 'int' to 'LPCSTR' Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast c:\documents and settings\oleg\мои документы\visual studio 2005\projects\startbutton\startbutton\startbutton.cpp(17) : error C2664: 'LoadIconA' : cannot convert parameter 2 from 'int' to 'LPCSTR' Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast c:\documents and settings\oleg\мои документы\visual studio 2005\projects\startbutton\startbutton\startbutton.cpp(36) : warning C4244: 'return' : conversion from 'WPARAM' to 'int', possible loss of data Build log was saved at "file://c:\Documents and Settings\Oleg\Мои документы\Visual Studio 2005\Projects\StartButton\StartButton\Debug\BuildLog.htm" StartButton - 2 error(s), 1 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== Добавлено @ 21:24 Вот полный код...
И ресур название имеет icon1.ico а в части ресурсов IDI_ICON1 |
| Автор: bugmenot 5.9.2006, 21:25 | ||||||
Поменяй
C
Или
|
| Автор: Snowy 5.9.2006, 21:26 | ||
При этом иконка должна иметь формат ico. В процедуру нужно передать имя ресурса. В примере его зовут "MYICON". GetModuleHandle можно заменить на hInstance своей программы или файла с ресурсом, если он известен. Добавлено @ 21:28 Если возвращает ощибку, то прочитай GetLastError - там сказано, почему не грузицца. |
| Автор: HellanD 5.9.2006, 21:32 | ||
| Спасибо код работает! Скажите а что за промежуточная функция такая MAKEINTRESOURCE(IDI_ICON1) И еще
Это значит что если у меня иконка в файле icon1.ico я могу написать wndclass.hIcon = LoadIcon(GetModuleHandle(NULL), "icon1"); Но так не работает!!!!!!!! |
| Автор: Snowy 5.9.2006, 21:38 |
| MAKEINTRESOURCE - указывает тип ресурса, который ты собираешься грузить. Также необходимо знать язык ресурса и его имя, чтобы загрузить. Знание имени файла совершенно недостаточно. Если ты создавал ресурсы, то все эти параметры нужно знать. Язык лучше устанавливать на нейтральный - 0. Тип иконка. Имя - зависит только от тебя. А не факт, что она именно так называется. Как назвал, так и грузи... ЗЫ. Ресурсы именуются заглавными буквами. |
| Автор: HellanD 5.9.2006, 21:43 |
| Еще раз вам спасибо!!! |