![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Изображение окна [D7, WinXP]
murava © (2006-09-18 12:28:00)Подскажите, как получить изображение окна в TBitmap(или возможно другой тип)? Окно может быть неактивным, поверх него находяться еще другие окна, или вообще оно свернуто. Это хоть возможно сделать??
DeadMeat (2006-09-19 00:49:00) [1]http://www.fengyuan.com/article/wmprint.html
KilkennyCat (2006-09-18 13:52:00) [2]> а чем именно отличаеться контекст от самого окна?
Мне затруднительно ответить... а что такое - самое окно?
BitBlt замечательно работает.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_0fzo.asp
Если сложно непосредственно с требуемым окном, то можно обратится к рабочему столу... пример из кулибы:
procedure TForm1.Button1Click(Sender: TObject); var DeskTop : TCanvas ; begin DeskTop := TCanvas.Create ; try with DeskTop do Handle := GetWindowDC (GetDesktopWindow) ; with PaintBox1.Canvas do CopyRect (Rect (0, 0, 200, 200), DeskTop, Rect (0, 0, 200, 200)) finally DeskTop.Free endend;
Это скопирует верхнюю левую область рабочего стола в верхнюю левую область вашего TPaintBox.
murava (2006-09-18 12:49:00) [3]To KilkennyCat:
А можешь подсказать как именно получить изображение. Я нашел функцию в WinApi (что-то типа BitBlt... точно не помню :)), она перерисовывала окно изображением с другого, а мне б именно получить это изображение без всякого гимороя :)
P.S. В той функции BitBlt используеться КОНТЕКСТ окна, а чем именно отличаеться контекст от самого окна?
KilkennyCat (2006-09-18 12:39:00) [4]теоретически - да. а практически - я б его сделал на мгновение поверх всех. так проще.