Вниз
Скачать: CL | DM;

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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.009 c
6-33239
Smile
2003-06-04 08:48
2003.08.11
Отправка файла NMStrm


1-33169
Z_man7777
2003-07-28 12:04
2003.08.11
Вопрос по TQuickReport


14-33361
UserName
2003-07-23 20:37
2003.08.11
Задачка...


14-33337
DataCrusher
2003-07-24 14:29
2003.08.11
Программа Склад+Предприятие


8-33226
Alexander Yudanov
2003-04-16 14:51
2003.08.11
Сжатие речи. Как это можно сделать???




   Наверх