Динамические иконкиАвтор: Anish Mistry
Требования: VC6 SP4, W2K SP1 Как-то раз созрела необходимость сделать информационные бары, которые были бы видны в System Tray в виде иконок. Изначально я делал это следующим образом: создавал несколько различных иконок и располагал их на разных уровнях, затем манипулируя уровнями получал нужное мне изображение. Этот метод работал, пока со временем с ним стало неудобно работать, в результате чего был создан класс CMeterIcon. Сразу предупреждаю, что класс довольно сложен в использовании, но зато он имеет довольно неплохую гибкость и функциональность. Итак, как его использовать. // Инициализация CMeterIcon mi32; const int nNumBars32 = 3; const int nLevels32 = 4; // устанавливаем ограничения (верх-низ) цветных баров int pLimits32[nLevels32] = {25,35,87,100}; // устанавливаем цвета для каждого уровня COLORREF pColors32[nLevels32] = {RGB(255,0,0),RGB(255,255,0),RGB(0,255,0),RGB(0,255,255)}; // запускаем mi32.Init(hFrame32,nMaxVal,nNumBars32,nSpacing,32,32,RGB(0,0,0)); // загружаем информацию о цветах и ограничениях mi32.SetColorLevels(pLimits32,pColors32,nLevels32); // создаём массив значений для баров int pVals32[nNumBars32] = {nVal1,nVal2,nVal3}; // генерируем иконку (используя DestroyIcon() можно удалить иконку) HICON hIcon32 = mi32.Create(pVals32); DownloadsСкачать демонстрашку и исходник - 14 Kb |