Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Копирование 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.


Наверх

Титульная страница Поиск, карта сайта Написать письмо