![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сфоткать полупрозрачные окна [NT4, Win2k, WinXP]
i-s-v © (2004-08-01 13:34:00)Добрый день, мастера. Помогите!
Вот процедура, которая фоткает прямоугольную область ARect экрана и заносить скопированное в Bit. Вроде все просто... Проблема: не снимаются полупрозрачные окна под ХРюшею. Что делать?
procedure CaptureScreenRect(Bit: TBitmap; ARect: TRect);
var
ScreenDC: HDC;
begin
with Bit, ARect do
begin
Width := Right-Left;
Height := Bottom-Top;
ScreenDC := GetDC(0);
try
BitBlt(Canvas.Handle, 0, 0, Width, Height,
ScreenDC, Left, Top, SRCCOPY);
finally
ReleaseDC(0, ScreenDC);
end;
Palette := GetSystemPalette;
end;
end;
i-s-v (2004-08-04 02:53:00) [1]NEED HELP!!!!
i-s-v (2004-08-02 12:41:00) [2]Не, люди, не получается... Canvas.CopyRect аналогична StretchBlt... Как угодно уже пробовал...
i-s-v (2004-08-02 12:40:00) [3]Не, люди, не получается... Canvas.CopyRect аналогична StretchBlt... Как угодно уже пробовал...
i-s-v (2004-08-02 11:28:00) [4]Спасибо, попробую
GetWindowDC (2004-08-01 16:23:00) [5]Извиняйте, опоздал:)
GetWindowDC (2004-08-01 16:21:00) [6]Попробуй GetWindowDC. GetDC возвращает клиентскую область, а GetWindowDC - полностью окно.
Timedrops (2004-08-01 16:20:00) [7]вот так попробуй
ты копируешь ф-цией BitBlt
а в этом примере Canvas.CopyRect
procedure TScrnFrm.GrabScreen;
var
DeskTopDC : HDc;
DeskTopCanvas : TCanvas;
DeskTopRect: TRect;
begin
DeskTopDC := GetWindowDC(GetDeskTopWindow);
DeskTopCanvas := TCanvas.Create;
DeskTopCanvas.Handle := DeskTopDC;
DeskTopRect := Rect(0,0,Screen.Width,Screen.Height);
// Отображение рабочего стола на экранную форму с именем ScrnForm
ScrnForm.Canvas.CopyRect(DeskTopRect,DeskTopCanvas,DeskTopRect);
ReleaseDC(GetDeskTopWindow,DeskTopDC);
end;
i-s-v (2004-08-01 16:12:00) [8]Ну что, никто не знает?