· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› ImageList_Draw в WinXP

Посл.отвђт Сообщенiе


Дата: Фев 22, 2003 13:28:33

Проблема с сабжевой функцией. Под ХР стандартные иконки (например из Shell32.dll) отрисовываются неправильно (с чёрной окантовкой). Под остальными виндами (95/98/NT 4.0) всё ОК.

Вот куски кода...

; == Загрузка Image List ==

invoke GetModuleHandle,_SHELLNAME
mov [template2],eax
invoke ImageList_Create,16,16,ILC_COLORDDB+ILC_MASK,4,4
mov [_Imagelist],eax
invoke LoadImage,[template2],7,IMAGE_ICON,16,16,LR_DEFAULTCOLOR
push eax
invoke ImageList_AddIcon,[_Imagelist],eax
call [DeleteObject]

; == Отрисовка Image List ^-) ==

invoke ImageList_Draw,[_Imagelist],0,[hDC],[rect.left],[rect.top],ILD_TRANSPA RENT

При этой отрисовке, иконка неправильно рисуется в ХР.


Дата: Фев 23, 2003 16:18:15

Только чтоб не оставлять тему без ответа. У меня нет XP... мало чем могу помочь. :)
В отличие от 95/98/NT, в XP используется новый comctl32.dll v6 со "странными улучшениями" Image List'ов и др. контролов. Может дело в ILC_COLORDDB (попробуйте заменить на ILC_COLOR24), может иконки уже не device dependent в XP... А вы уверены, что чёрную окантовку рисует именно ImageList_Draw? Попробуйте снять скриншот и подсчитайте пиксели - возможно, что контур не входит в 16x16...


Дата: Мар 15, 2003 11:04:42

В XP используется новый тип иконок 32bit (24 + 8) с прозрачностью. А твоя прога ету прозрачность не поддерживает.
Решение:
1. Сделать подержку прозрачности
2. Закатать в ресурсы иконки из Win9x
и загружать их оттуда.

НЕ В ТЕМУ
http://www.nnm.ru/pict/cell_phone.jpg
http://www.nnm.ru/pict/ananas_sh.jpg
http://www.nnm.ru/pict/xren.jpg
http://www.nnm.ru/pict/o_baby.jpg
http://www.nnm.ru/pict/m_19547.jpg
http://www.nnm.ru/pict/mouse_mouse.gif
http://www.nnm.ru/pict/natural_kak.jpg
http://www.nnm.ru/pict/sigar1.jpg
http://www.nnm.ru/pict/a39.jpg
http://www.nnm.ru/pict/start_paper.jpg
http://www.nnm.ru/pict/money_us.gif


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.076