![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Копирование Canvas в Clipboard [D7, Win2k, WinXP]
Ptr © (2002-12-30 13:51:00)Уважаемые !!! Как скопировать содержимое окна (но не окна полностью, а только рабочей области) в Clipboard. Окно может быть скрыто.
MBo (2002-12-30 15:43:00) [1]>А как быть, если окно частично скрыто?
тогда нетривиально
Посмотри
http://www.fengyuan.com/article/wmprint.html
Ptr (2002-12-30 15:24:00) [2]Уважаемый MBo !!!
А как быть, если окно частично скрыто?
Тогда в Clipboard копируется только видимая часть?
Ptr (2002-12-30 14:51:00) [3]ОГРОМНОЕ СПАСИБО !!!!!!!
MBo (2002-12-30 14:48:00) [4]и в конце
PtrBitMap.Free;
MBo (2002-12-30 14:47:00) [5]var
PtrHDC: HDC;
PtrBitMap: TBitmap;
begin
PtrHDC := GetDC(Handle);
PtrBitMap := TBitmap.Create;
PtrBitMap.Width:=ClientWidth;
PtrBitMap.Height:=ClientHeight;
BitBlt(PtrBitMap.Canvas.Handle,0,0,ClientWidth,ClientHeight,
PtrHDC,0,0,SrcCopy);
Clipboard.Assign(PtrBitMap);
Ptr (2002-12-30 14:37:00) [6]Написал по Вашему рецепту, но не работает...
procedure TForm1.BitBtn4Click(Sender: TObject);
var
PtrHDC: HDC;
MyFormat : Word;
PtrBitMap: TBitmap;
AData,APalette : THandle;
begin
PtrHDC := GetDC(Handle);
PtrBitMap := TBitmap.Create;
BitBlt(PtrBitMap.Canvas.Handle,0,0,Width,height,PtrHDC,Width,height,SrcCopy);
Clipboard.Assign(PtrBitMap);
end;
MBo (2002-12-30 14:02:00) [7]GetDC - получаем контекст клиентской области, BitBlt его на TBitmap, который Assign в ClipBoard.