Я понимаю, что нончне на дворе самый актуальный вопрос для многих - глюки C6, но жизнь-то продолжается...
И как у меня часто бывает - возникает сабж : )
А именно нужно выводить в трее динамичекси создаваемые цветные иконки - точнее текствую инфу.
Так вот собственно вопрос - кому-нибудь удавалось используя CreateIcon получить _цветные_ иконки? Или используя CreateIconIndirect получить наложение текста на имеющуся цветную подложку в виде Bitmap-а, "созданного" по некой фоновой иконке.
Максимум чего мне удалось добиться - черно белоые иконки при использовании CreateIcon и опять же черно-белый текст (используется 0-й и 1-й элементы стандартной палитры) при использовании CreateIconIndirect.
--
Best regards,
Vadym mailto:vadim@softcreator.com
ICQ: 82308757
(Добавление)
Интересно, какая связь у сабжа с глюками с6 ?И как у меня часто бывает - возникает сабж
Да.Максимум чего мне удалось добиться - черно белоые иконки при использовании CreateIcon и опять же черно-белый текст (используется 0-й и 1-й элементы стандартной палитры) при использовании CreateIconIndirect.
CreateIconFromResource, где в качестве массива подсовывается сгенеренная икона вместе с палитрой.
--
Best regards,
Maxim Yemelyanov,
Enigma Soft Company
phone: +380 572 177977
WEB: http://enigmasoft.com.ua
e-mail: clalist@enigmasoft.com.ua
ICQ: 12253836
Я в свое время для таких целей просто создавал заранее набор иконок, а остальное в tooltip
------------------------------------------------------------
Igor Gubin (igor@quantor.com)
Quantor-Soft Metal
Phone/Fax: (+7 095) 234 4905
WEB: http://www.metaldata.info
http://www.metaldata.ru
угу - цифры от 1 до 100 на фоне четырех разных цветов... скучно и тупо... сейчас так и сделано - только без цифр, просто полоски-индикторы. И то 14*4 = 56 иконки - задрался их рисовать и включать в проект
--
Best regards,
Vadym
"Час позора, на всю оставшуюся жизнь - инженер."
Сделано один раз, а дальше нет никакой головной боли.
(Сделай подгружаемый проект и стандартную библиотеку)
------------------------------------------------------------
Igor Gubin
(Добавление)
ну люблю я шоб было красиво
а это решение тупое, то, что у меня сделано - мне не нравится как программисту. Тебе же знакомо "...с чувством глубокого удовлетворения..."?
Так вот - нету его от данного решения...
Да просто навеяло...Интересно, какая связь у сабжа с глюками с6 ?
Связи никакой. Просто для меня глюки C6 - проблема довольно абстрактная, а вот текст в иконках - практическая
А немного поподробнее можно? /* застенчиво шаркая ножкой */CreateIconFromResource, где в качестве массива подсовывается сгенеренная икона вместе с палитрой.
Допустим есть подлинкованная иконка-фон.
Грузим ее цепочкой FindResource -> LoadResource
Теперь между загруженной мапой иконки и вызовом CreateIconFromResource
нам нужно впердолить текст на этот имедж.
Скажем для отрисовки текста на дефолтовом фоне и создание при это м
иконки я делал следующее (опускаю незначащие детали):
string = '100'
ScreenDC = GetDC(0)
MemDC = CreateCompatibleDC(ScreenDC)
iconinfo.hbmColor = CreateCompatibleBitmap(ScreenDC,16,16)
iconinfo.hbmMask = CreateCompatibleBitmap(MemDC,16,16)
ReleaseDC(0,ScreenDC)
hOldBm = SelectObject(MemDC,iconinfo.hbmMask);
PatBlt(MemDC,0,0,16,16,BLACKNESS)
SelectObject(MemDC,iconinfo.hbmColor)
TextOut(MemDC,0,0,string,LEN(string))
SelectObject(MemDC,OldBm)
DeleteDC(MemDC)
iconinfo.fIcon = True
Loc:usgIconHandle = CreateIconIndirect(iconinfo)
DeleteObject(iconinfo.hbmColor)
DeleteObject(iconinfo.hbmMask)
А что я должен делать в данном случае?
Можешь привести хоть немного живого код (сишного к примеру)?
--
Best regards,
Vadym
Сишный код могу, но все намного проще
Я делал 16-цветные иконки 16*16 и 32*32.
Рисуешь в любом редакторе иконок прозрачные иконки указанного размера. Берешь файл со смещения 0x16, переводишь в текстовое описание этого буфера, для клары что-то навроде
Код: Выделить всё
icon16x16 group
ushort(00028h)
ushort(00000h)
...
end
#define MyIcon(I) CreateIconFromResource((LPBYTE)&I, sizeof(I),TRUE,0x00030000)
HANDLE hIcon16x16 = MyIcon(icon16x16_tmp);
где
char icon16x16_tmp[sizeof(icon16x16)];
а icon16x16 - это твой константный массив/группа.
Тупо, зато универсально
--
Best regards,
Maxim Yemelyanov
Написал: ClaList(2)