| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > ImageList и 24-битные значки |
| Автор: 586 6.8.2006, 05:37 |
| hImgList=ImageList_Create(GetSystemMetrics(SM_CXICON),GetSystemMetrics(SM_CYICON), ILC_COLOR | ILC_MASK | ILC_COLOR24, 2000, 0); Потом добавляются значки и Image list привязывается в Toolbar. Получаю значки двумя способами: через SHGetFileInfo и ExtractIconEx. Когда добавляю в Image list 24-битные иконки, на ToolBar'е по контуру значка чёрный ореол. Как от этого избавиться? |
| Автор: GremlinProg 6.8.2006, 12:30 |
| видимо нужно убрать флаг ILC_MASK |
| Автор: 586 6.8.2006, 12:58 |
Теперь они на чёрном фоне. |
| Автор: GremlinProg 6.8.2006, 13:18 |
| ну, дак выводить картинки на Toolbar нужно с ILD_TRANSPARENT, чтобы убрать задний фон. Смотри ImageList_Draw. А вообще, я бы не привязывался к конкретному бит-рейту на изображения. Возможно глубина цвета оригинала больше, а ты просишь 24 бита, вот он и обрезает, получается черная каемка. |
| Автор: Sheff 6.8.2006, 18:27 |
| А может вообще не стоит писать ни ILC_COLOR24 ни ILC_COLOR32 ? |
| Автор: GremlinProg 6.8.2006, 20:21 |
| если манифест убрал, значит нужно ручками инициализировать comctl32. Для этого вызови InitCommonControlsEx или InitCommonControls перед использованием контролов. Возможно понадобится прямо сказать, что используется 5 или 6 версия контролов. Это можно сделать посылкой сообщения CCM_SETVERSION во все контролы этой библиотеки. |