![]() |
|
![]() ![]() ![]() |
|
eugeniy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 23.3.2010 Где: Петрозаводск Репутация: нет Всего: нет |
Это то я уже сделал (битмап), а какие классы, методы нужны для работы с картинкой? Просто с текстом был гемор полный, а тут по моему, как я полагаю, всё ещё хуже обстоит( |
|||
|
||||
Albor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
У CStatic (именно такого типа будет переменная для Picture Control, только не забудь изменить идентификатор для картинки, а то не сможешь добавить переменную) есть ф-ция SetBitmap(). Понадобится CBitmap. Как получить CBitmap из данных в твоей базе не подскажу - не знаю. Думаю что не сложнее, чем со строками.
|
|||
|
||||
eugeniy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 23.3.2010 Где: Петрозаводск Репутация: нет Всего: нет |
Поменял ID картинки, на IDC_PHOTO, сделал переменную типа CStatic. А как этими SetBitmap и CBitmap пользоваться? Например, если просто тупо из файла вставить картинку в диалог? |
|||
|
||||
eugeniy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 23.3.2010 Где: Петрозаводск Репутация: нет Всего: нет |
Я так понял, если делаешь Bitmap тип, то только можно работать с картинками формата bmp?
Других вариантов не остаётся? А как же jpg, gif, png??? |
|||
|
||||
eugeniy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 23.3.2010 Где: Петрозаводск Репутация: нет Всего: нет |
поработал с классом CBitmap, там только две функции поюзал, это LoadBitmap и SetBitmap, получается и вправду этот класс может работать только с картинками формата bmp.
А если у меня на фтп-сервере картинки в jpg и png хранятся, то как тогда тут быть? Получается какие-то сторонние библиотеки нужно подключать? |
|||
|
||||
eugeniy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 23.3.2010 Где: Петрозаводск Репутация: нет Всего: нет |
Albor, вы где?
Какими средствами можно обойтись в mfc для решения данной проблемы? Может есть уже готовое решение, и велосипед не нужно изобретать? |
|||
|
||||
Albor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
В MFC, по-моему нет, во всяком случае я не знаю. Не найду никак ссылку, автор - Виталий Рычков (WinMain), показывал как это можно сделать, по-моему, используя ATL. Найду ссылку на статью разве что, а так помочь не могу.
|
|||
|
||||
eugeniy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 23.3.2010 Где: Петрозаводск Репутация: нет Всего: нет |
Albor, вы где?
Какими средствами можно обойтись в mfc для решения данной проблемы? Может есть уже готовое решение, и велосипед не нужно изобретать? |
|||
|
||||
Albor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
Смотри пример здесь. В коде найдёшь как загрузить разные типы картинок.
|
|||
|
||||
eugeniy |
|
||||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 23.3.2010 Где: Петрозаводск Репутация: нет Всего: нет |
Спасибо за ссылочку. Вообщем сделал я по этому примеру вывод картинки. Там во-первых этот класс CPicture работает только с bmp, gif, jpeg, а png не поддерживает, что уже мне не подходит. Во-вторых мне удалось вывести картинку жпег прямо на диалоге, используя функцию BOOL OnEraseBkgnd(CDC* pDC). в элемент picture control, так и не удалось вывести( поработал с классом CImage, он уже со всеми форматами умеет работать) вот кусок кода, отвечающий за загрузку картинки и вывод её в элемент picture control.
но он мне рисует только рамку картинки исходных размеров, а саму картинку в диалоге не прорисовывает, делал в OnInitDialog. не знаю почему, уже всё перепробывал( Потом сделал в функции BOOL OnEraseBkgnd(CDC* pDC). На что он мне вывел картинку исходных размеров, но при этом убрал задний фон( Как мне теперь сжать картинку до нужных мне размеров? и вернуть на место задний фон? прилагаю два скрина, один - результат работы BOOL OnEraseBkgnd(CDC* pDC), а второй - как должно быть. http://ifolder.ru/17699882 |
||||
|
|||||
Albor |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
Попробуй использовать другой вариант функции вывода
|
||||
|
|||||
Albor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
А объект CImage создавался в OnInitDialog? Если да, то объяви его как член класса диалог. А так - это временный объект, уничтожаемый по завершению OnInitDialog. m_photo=SetBitmap(image); не правильно m_photo.SetBitmap((HBITMAP)image); так должно быть Это сообщение отредактировал(а) Albor - 14.5.2010, 11:02 |
|||
|
||||
eugeniy |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 23.3.2010 Где: Петрозаводск Репутация: нет Всего: нет |
немного не понял как её прикрутить(AlphaBlend), так что ли?
всё это в функции OnInitDialog. Добавлено через 5 минут и 12 секунд
Да создавался в OnInitDialog
Всмысле в хэдере? если да, то объявил вот так
|
||||||||
|
|||||||||
Albor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
Вот обещанная ссылка на статью. Там же можно скачать пример с использованием MFC.
|
|||
|
||||
eugeniy |
|
||||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 23.3.2010 Где: Петрозаводск Репутация: нет Всего: нет |
Уже сделал с использование класса CImage. Получилось примерно так.
только вот не пойму как такое проделать. А если у меня вот такая ситуация. есть переменная CString Foto, переменная Foto в свою очередь присваивается каждый раз значение row[20] (результат выборки из таблицы БД Mysql), в которой хранится, например, 1.jpg т.е. получается Foto = 1.jpg Как мне в функции загрузки картинки прописать параметр? Image.Load(LPCTSTR(Foto)) и Image.Load(Foto(GetBuffer())) пробовал не работает, падает с ошибкой.((( |
||||
|
|||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |