Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > CImageList, маска и отрисовка - нет прозрачности!.


Автор: Rapalex 9.8.2006, 10:03
Это моя последняя попытка рисования битмапов.

Короче беру один маленький битмап (присоеденён)  фон который должен быть прозрачен RGB(255, 0, 255) самая что не наесть маджента. короче в проге пишу так:
Код

    CImageList oImageList;
    oImageList.Create(16, 16, ILC_COLOR24, 0, 1);

    CBitmap oBmp;
    oBmp.LoadBitmap(IDB_CUT24);

    oImageList.Add(&oBmp, RGB(255, 0, 255));

    CClientDC dc(this);
    CPoint pt(10, 10);

    oImageList.Draw(&dc, 0, pt, ILD_NORMAL);

И врезультате мне ресуется не маджента а чёрный (рисунок прекрепил) а я хотелбы что там гед маджента было прозрачно, ну вообще нечего не рисовало. Такое Возможно?

Автор: Earnest 9.8.2006, 12:33
Попробуй флаг ILD_TRANSPARENT вместо NORMAL

Автор: Rapalex 9.8.2006, 12:55
Пробывал, таже чернота!

Автор: Earnest 9.8.2006, 13:07
Попробуй еще DrawEx - там можно фон задать явно (но тогда, наверно, IDL_NORMAL)
Кстати, а на чем ты рисуешь? Может там чернота уже есть?
А еще попробуй установить цвет фон для ImageList в CLR_NONE (т.е. вызови CImageList::SetBkColor (CLR_NONE)).
Кстати, по-моему, при создании нужно указывать, что ты будешь маску использовать, т.е. добавить флаг ILC_MASK

Автор: Rapalex 9.8.2006, 15:11
Поставил маску и заработало а ведь так странно цвет меняло если цвет маски при создании менять. Надеюсь на виндах 98 и 2000 тоже рисоваться правильно будет.

Спасибо!!!

 smile 

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