Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.11;
Скачать: 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 вся ветка

Текущий архив: 2003.08.11;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
3-33070
M126
2003-07-18 08:41
2003.08.11
Копирование из одной базы в другую


1-33146
Новик
2003-07-25 16:40
2003.08.11
DLL


1-33126
Vitaliy
2003-07-26 22:59
2003.08.11
Приоритет процесса


14-33302
Бархатный
2003-07-24 06:12
2003.08.11
Работа с dbf


1-33154
Mystex
2003-07-27 09:16
2003.08.11
Как изменить атрибуты текста в RichEdit...