Форум: "KOL";
Текущий архив: 2003.08.11;
Скачать: [xml.tar.bz2];
ВнизHicon ---> HBitmap Найти похожие ветки
← →
_Ed_ (2002-12-06 18:07) [0]Уважаемые мастера! Подскажите как преобразовать иконку в битмап.
контекст задачи: на кнопке TKOLBitBtn отобразить содержимое TKOLIcon.
Попытался использовать DrawIcon, но у битмапа не обнаружил канвы...
Если можно положите примерчик...
Заранее благодарен, Сердюк Э.С.
← →
Gandalf (2002-12-06 22:47) [1]
> Уважаемые мастера! Подскажите как преобразовать иконку в
> битмап.
> контекст задачи: на кнопке TKOLBitBtn отобразить содержимое
> TKOLIcon
Думаю этого хватит(тут и преобразование и отрисовка - хотя может ты и не это хотел)...
var
i:PIcon;
b:PBitmap;
tmp:HDC;
begin
i:=Newicon;
i.LoadFromFile("Icon530.ico");
b:=NewBitmap(32,32);
i.Draw(b.canvas.handle,0,0); // Говоришь нет канвы ?
tmp:=GetDC(BitBtn1.Handle);
b.Draw(tmp,0,0);
ReleaseDC(BitBtn1.Handle,tmp);
b.free;
i.free;
end;
> Hicon ---> HBitmap
Ходишь на грани offtopic - такие вопросы в WinAPI (ну может еще в Media или Игры(Алгоритмы) - хотя думаю модератор обидится)!
← →
_Ed_ (2002-12-07 03:06) [2]Огромное спасибо Gandalf за пример. Однако используя его получаем почему-то чёрно-белую иконку...
Однако, пытаясь разобраться в этом я нашёл более красивое решение, тем более что BitBtn я создаю run-time (и не один).
Надеюсь оно кому-то ещё поможет:
...
ico := NewIcon;
ico.Handle := ExtractAssociatedIcon(HInstance, {например так}
PChar(ParamStr(0)), i);
Btns[j] := NewBitBtn(Form,"NewBitBtn",[bboNoBorder,bboFixed],
glyphLeft, ico. Convert2Bitmap(clBtnFace), 0);
ico.Free;
...
И всё! Никаких лишних телодвижений! (:-)))
При желании можно вообще без IconCreate обойтись и всё в одну строку записать!
← →
_Ed_ (2002-12-07 03:08) [3]сорри! насчёт одной строки я погарячился, но и так сойдёт! :)
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2003.08.11;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c