Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > прозрачность в ImageList.


Автор: saw 30.4.2008, 21:37
Хугружаю png.
Делаю это вот так 

Код

HBITMAP LoadPicture(char* path)
{
    wchar_t wpath[256]={'\0'};
    HBITMAP hBitmap;    
    MultiByteToWideChar(CP_UTF8,0,path,-1,wpath,256);
    Gdiplus::Bitmap bitmap(T2CW(wpath));        
    if (Gdiplus::Ok != bitmap.GetLastStatus())
            return NULL;     
    bitmap.GetHBITMAP(Gdiplus::Color(0,0,0),&hBitmap);
    return hBitmap;
}


png прозрачные. Потом помещаю их в ImageList.

Код

  ImageList_Create(24,24,ILC_COLOR32|ILC_MASK,0,0);
....
  ImageList_AddMasked(hImageList,hBitmap,RGB(0,0,0));//'эксперименты.

Как бы я не колдовал фон при выводе элементов ImgeList то синий то черный.
Помогите избавится от фона

Автор: Earnest 6.5.2008, 18:31
Прозрачность в параметрах Draw

Автор: saw 6.5.2008, 18:50
у меня содержимое ListImage потом вставляется в ListView.
я не использую draw.

Автор: Earnest 8.5.2008, 16:11
Понятно.
Ну, в общем, о прозрачности png, видимо, можно забыть. Скорее всего, при преобразовании в битмап, она пропадает... 
Создаешь ты вроде правильно, а вот насчет добавления - у тебя действительно именно черный цвет должен быть прозрачным?
И вообще не факт, что ListView использует маску при выводе.
А что тебе мешает засунуть картинку в ресурсы, с белым фоном и доставать ее оттуда?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)