Форум: "Основная";
Текущий архив: 2010.03.28;
Скачать: [xml.tar.bz2];
ВнизПри копировании экрана ее удаётся захватить окно со свойством For Найти похожие ветки
← →
dmitry_12_08_73 © (2009-06-07 18:10) [0]Как скопировать окно со свойством FormStyle = fsStayOnTop при копировании экрана функцией
BitBlt (bm.Canvas.Handle, 0, 0, Width, Height, WinDC, Left, Top, SRCCOPY)?
Пример нормальной работы: нажатие клавиши PrtScr копирует это окно.
Спасибо!
← →
Palladin © (2009-06-07 18:13) [1]А что, не должен?
← →
Юрий Зотов © (2009-06-07 18:33) [2]Все прекрасно копируется:
procedure TForm1.FormDblClick(Sender: TObject);
begin
FormStyle := fsStayOnTop;
BitBlt(Canvas.Handle, 0, 0, Width, Height, GetWindowDC(Handle), 0, 0, SRCCOPY)
end;
Ищите ошибку.
← →
Юрий Зотов © (2009-06-07 18:36) [3]А так копируется весь экран, и тоже без пробем:
procedure TForm1.FormDblClick(Sender: TObject);
begin
FormStyle := fsStayOnTop;
BitBlt(Canvas.Handle, 0, 0, Width, Height, GetWindowDC(GetDesktopWindow), 0, 0, SRCCOPY)
end;
← →
Ins © (2009-06-09 11:48) [4]
> BitBlt(Canvas.Handle, 0, 0, Width, Height, GetWindowDC(GetDesktopWindow),
> 0, 0, SRCCOPY)
Не нужно так делать, результат функции GetWindowDC еще и освобождать нужно с помощью ReleaseDC. Так что правильнее будет сначала получить в переменной дескриптор контекста устройства, потом BitBlt, а потом освободить этот контекст.
← →
dmitry_12_08_73 © (2009-06-10 22:57) [5]спасибо всем за ответы, буду пробовать
← →
dmitry_12_08_73 © (2009-06-22 23:20) [6]Я разобрался точнее: окно не копируется BitBlt, если AlphaBlend = true. А как его скопировать в этом случае?
← →
axis_of_evil © (2009-06-25 12:52) [7]возможно скопировать часть десктопа, занимаемую этим окном
← →
Eraser © (2009-06-26 17:55) [8]> [6] dmitry_12_08_73 © (22.06.09 23:20)
CAPTUREBLT
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2010.03.28;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c