Загрузка JPEG из ресурсов программы

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Загрузка JPEG из ресурсов программы

Re: Загрузка JPEG из ресурсов программы

WinMain » 06 мар 2008, 14:39

Можно конечно. Только для этого вместо элемента STATIC нужно использовать соответствующий ActiveX-компонент. Тогда в свойствах этого элемента визуально можно указать исходный файл с изображением. Это изображение будет загружено и записано в файл ресурсов. При запуске программы во время создания окна диалога изображение автоматически будет загружено из ресурсов программы и отображено на окне диалога. В качестве такого ActiveX-компонента можно использовать Microsoft Forms 2.0 Image, который входит в состав Microsoft Office (VBA). Если тебе нужно будет перенести программу на компьютер, где не установлен Microsoft Office, то тебе придётся вручную скопировать в системный каталог Windows модули FM20.DLL и FM20ENU.DLL, при этом FM20.DLL нужно зарегистрировать как СОМ-сервер с помощью утилиты regsvr32.exe

Re: Загрузка JPEG из ресурсов программы

Decoder » 06 мар 2008, 14:18

Примечательно, что BITMAP или иконку можно визуально связать с элементом STATIC прямо в редакторе ресурсов. А вот с JPEG-изображением так не получается, приходится специальный код писать. Как-нибудь можно визуализировать этот процесс?

Re: Загрузка JPEG из ресурсов программы

WinMain » 06 мар 2008, 13:21

Decoder писал(а):Ещё такой вопрос: если мне нужно привязать изображение к окну диалога в виде статического элемента, то мне значит нужно делать сабкласс для этого элемента и в нём рисовать моё изображение? Или как-то иначе можно это сделать?
Вовсе необязательно делать сабкласс. Можно обычному элементу STATIC в стиле SS_BITMAP назначить свою картинку. Для этого нужно вызвать метод CStatic::SetBitmap(). Чтобы получить HBITMAP из OLE-объекта IPicture, нужно вызвать метод IPicture::get_Handle() и преобразовать его в HBITMAP обычным приведением типов.

Re: Загрузка JPEG из ресурсов программы

BBB » 06 мар 2008, 13:08

WinMain писал(а):Я как-то делал универсальный загрузчик изображений, который позволяет брать картинку разных форматов и из разных источников: из файла, из оперативной памяти, из ресурсов, а так же из интернета.
Тут я опять попиарю библиотеку XnView GFL SDK :)
Тоже многое чего умеет. Поддерживает кучу графических форматов (в доке во вступлении указано, что "более 100"). Прилагается доступ из C++, VB, Delphi.

Re: Загрузка JPEG из ресурсов программы

Decoder » 06 мар 2008, 12:44

Ещё такой вопрос: если мне нужно привязать изображение к окну диалога в виде статического элемента, то мне значит нужно делать сабкласс для этого элемента и в нём рисовать моё изображение? Или как-то иначе можно это сделать?

Re: Загрузка JPEG из ресурсов программы

WinMain » 06 мар 2008, 12:28

Спасибо за комплимент. :-)

Re: Загрузка JPEG из ресурсов программы

Decoder » 06 мар 2008, 00:43

WinMainище, ну ты молодец! Очень пригодился твой загрузчик изображений.

Re: Загрузка JPEG из ресурсов программы

WinMain » 05 мар 2008, 16:07

Я как-то делал универсальный загрузчик изображений, который позволяет брать картинку разных форматов и из разных источников: из файла, из оперативной памяти, из ресурсов, а так же из интернета.
Мой пример сделан с помощью библиотеки WTL (Windows Template Library). Так что тебе нужно будет скачать эту библиотеку и добавить её в Visual C++. Или можно просто переделать этот пример на MFC.

Загрузка JPEG из ресурсов программы

Decoder » 05 мар 2008, 14:58

Для графических ресурсов типа BITMAP, ICON, CURSOR есть соответствующие функции загрузки: LoadBitmap(), LoadIcon(), LoadCursor().
А я хочу включить в ресурсы программы изображения в формате JPG. Каким образом мне их потом загрузить оттуда и получить хэндл изображения?

Вернуться к началу