Рейтинг:
1
Jochen Arndt
Вы могли бы использовать Класс CPngImage[^] из МФЦ пакета:
#include <afxtoolbarimages.h>
CPngImage image;
image.Load(IDB_BITMAP_LOGO_NEW, AfxGetInstanceHandle());
// EDIT: Must cast here
//m_pictureLogo.SetBitmap(image.Detach());
m_pictureLogo.SetBitmap((HBITMAP)image.Detach());
Member 13495762
Привет, кажется, все хорошо. где я должен поместить последние две строки в файл cpp?
изображение.Load(IDB_BITMAP_LOGO_NEW, AfxGetInstanceHandle());
m_pictureLogo.SetBitmap(изображение.Отсоединить());
Я положил его в DoDataExchange, в последней строке кода есть ошибка
m_pictureLogo.SetBitmap(изображение.Detach()); ->аргумент типа "HGIOBJ" несовместим с параметром типа "HBITMAP" ....
Jochen Arndt
Просто приведите возвращаемое значение (я обновлю свое решение):
m_pictureLogo.SetBitmap((HBITMAP)изображение.Отсоединить());
Я бы поместил код в функцию Init родительского окна (CDialog: OnInitDialog, CView: OnInitialUpdate).
Member 13495762
Спасибо , я постараюсь дать вам знать. Мне нужны png файлы для добавления потому что мне нужна прозрачность
Jochen Arndt
Но вы знаете, что PNG преобразуется в растровое изображение, которое затем отображается элементом управления, а элемент управления CStatic picture не поддерживает прозрачность?
Member 13495762
Я вижу...так он мне не поможет. Мне нужно загрузить png-файлы (которые имеют прозрачность) в мои блоки управления изображениями на нашей стартовой странице вместо bmp-файла...
Jochen Arndt
Растровые файлы также могут иметь прозрачность (одно значение цвета определяется как прозрачный цвет, и значение RGB этого цвета должно быть передано функциям, поддерживающим прозрачные растровые изображения).
Но управление изображениями на основе CStatic их не поддерживает. Но вы можете, например, нарисовать непосредственно окно с помощью BitBlt.
См., например: https://www.codeproject.com/Articles/703/Drawing-Transparent-Bitmap-with-ease-with-on-the-f
Member 13495762
Это довольно трудно использовать для меня. Можно ли как-то использовать метод onPaint() для рисования этого png на элементе управления изображением?
Jochen Arndt
Это вполне возможно. Читайте о нарисованных владельцами / пользователями элементах управления. Но это продвинутая тема, которая требует изучения (много чтения).