Здравствуйте, AlexGluharev, Вы писали:
AG>Здравствуйте, unreg_flex, Вы писали:
_>>Эксперты помогите!
_>>Никак не могу заставить WinXP правильно отображать 32-х битные изображения.
_>>Ужо чего только не пробовал!
_>>Она настырно не хочет интерпретировать альфа канал!
_>>Изображения я создавал с помощью FreeHand9 & PhotoShop5.5.
_>>Можно указать прозрачный цвет (1 bit alpha), но в этом случае края выглядят коряво,
_>>а нужно как в explorer'е (8 bit alpha)!
_>>Подскажите что не так plz (четвертый день парюсь)!
AG>AG>/* Создаем ImageList */
AG> iml_ToolBar_n = ImageList_Create (0,0, ILC_COLOR32 | ILC_MASK, NULL, NULL);
AG> /* Загружаем рисунки ToolBar */
AG> iml_ToolBar_n = ImageList_LoadImage( hInstDll, /* Здесь изображение */, 0, 0, CLR_DEFAULT, IMAGE_BITMAP, LR_CREATEDIBSECTION);
AG> iml_ToolBar_h = ImageList_LoadImage( hInstDll, /* Здесь изображение, когда мышь на кнопке */, 0, 0, CLR_DEFAULT, IMAGE_BITMAP, LR_CREATEDIBSECTION);
AG> /* Подключаем рисунки */
AG> SendMessage (hToolBar, TB_SETIMAGELIST, 0, (LPARAM) iml_ToolBar_n);
AG> SendMessage (hToolBar, TB_SETHOTIMAGELIST, 0, (LPARAM) iml_ToolBar_h);
AG>
AG>Я тут свои параметры не убирал, разберёшся надеюсь.
AG>А вообще, пиши на мыло, кину файл справки, там об этом написано.
Я использовал этот код, но результат аналогичный!
XP интерпретирует альфа канал как однобитный
т.е. изображение либо абсолютно прозрачно, либо абсолютно непрозрачно
и правильного смешивания цветов не порисходит.
в результате гробятся края при переходе с прозрачного на непрозрачный!
Изображение которое гружу гарантированно 32bpp с 8bit alpha
причем 0<alpha<255 (проверено по F3)!