Форум: "Основная";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
ВнизКак сфоткать полупрозрачные окна Найти похожие ветки
← →
i-s-v © (2004-08-01 13:34) [0]Добрый день, мастера. Помогите!
Вот процедура, которая фоткает прямоугольную область 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-01 16:12) [1]Ну что, никто не знает?
← →
Timedrops © (2004-08-01 16:20) [2]вот так попробуй
ты копируешь ф-цией 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;
← →
GetWindowDC (2004-08-01 16:21) [3]Попробуй GetWindowDC. GetDC возвращает клиентскую область, а GetWindowDC - полностью окно.
← →
GetWindowDC (2004-08-01 16:23) [4]Извиняйте, опоздал:)
← →
i-s-v © (2004-08-02 11:28) [5]Спасибо, попробую
← →
i-s-v © (2004-08-02 12:40) [6]Не, люди, не получается... Canvas.CopyRect аналогична StretchBlt... Как угодно уже пробовал...
← →
i-s-v © (2004-08-02 12:41) [7]Не, люди, не получается... Canvas.CopyRect аналогична StretchBlt... Как угодно уже пробовал...
← →
i-s-v © (2004-08-04 02:53) [8]NEED HELP!!!!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.04 c