![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Hbitmap [Delphi, Windows]
tamerlan311 © (2002-08-10 21:35:00)как загрузить в Pbitmap изображение если известен его шендл (Hbitmap)
tamerlan311 (2002-08-12 22:42:00) [1]наконец-то я разобрался!
Mybmp.Handle:=HMyBitmap непойдет т.к. при уничтожении обекта которому принадлежит HMyBitmap , КАРТИНКА БУДЕТ ПОТЕРЯНА!
значит нужно создать новый HBitmap скопировать туда интересующее нас изображение и присвоить Mybmp.Handle !
Вот процедура копирования:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function Bitmap_copy(origin: Hbitmap): Hbitmap;
var
size:TSize;
dc,dc1:HDC;
res,res1:THandle;
begin
Result:=0;
size:=Bitmap_size(origin);
dc:=CreateCompatibleDC(0);
res:= SelectObject(dc, origin);
if res=0 then begin ShowMessage("Ошибка при копировании битмапа!");Exit;end;
dc1:=CreateCompatibleDC(dc);
Result:=CreateCompatibleBitmap(dc,size.cx,size.cy);
res1:=SelectObject(dc1,Result);
BitBlt( dc1,0,0,size.cx,size.cy,dc,0,0,SrcCopy);
SelectObject(dc,res);
DeleteDC(dc);
SelectObject(dc1,res1);
DeleteDC(dc1);
end;
_________________________________________________________________
и теперь Mybmp.Handle:=Bitmap_copy(HMyBitmap);
надеюсь это замечание кому-нибудь пригодиться!
Gandalf (2002-08-12 09:08:00) [2]>спасибо большое!
>Я не нашол свойство AssignHandle у Pbitmap !!
Потому что его нет. А зачем благодарил,я же сказал "вроде", значит неуверен. Ну Win полетел - а так не помню.
Хммм. Создай новый битмап (PBitmap) и на него нарисуй HBitmap.
Это конечно не совсем то, но всеже.
ЗЫ: Попробуй просто
Mybmp.Handle:=HMyBitmap. (он есть)
"Вроде" должно помочь.
tamerlan311 (2002-08-11 22:26:00) [3]Я не нашол свойство AssignHandle у Pbitmap !!
tamerlan311 (2002-08-11 13:59:00) [4]спасибо большое!
Gandalf (2002-08-11 11:34:00) [5]Вроде есть AssignHandle.