Главная страница
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.017 c
6-33241
Инна
2003-06-04 15:14
2003.08.11
WebSnap


1-33174
Flying Home
2003-07-28 14:46
2003.08.11
Конвертация строк


6-33251
Сергей_
2003-06-06 13:57
2003.08.11
отправка и прием файла по модему


14-33326
alxx
2003-07-25 11:08
2003.08.11
Абстрактные методы в C++


6-33249
drnet
2003-06-06 03:58
2003.08.11
TWebBrowser не отрабатывает OnBeforeNavigate под XP