![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не фоткаються полупрозрачные окна
i-s-v © (2004-08-05 17:40:00)Вот процедура для снятия снимка рабочего стола. Фоткается прямоугольная область ARect и заносится в Bit. Все вроде просто. Но вот проблема: не фоткаются полупрозрачные окна (AlphaValue). Разные модификации этой процедуры (вместо BitBlt использовать StretchBlt или DesktopCanvas.CopyRect) приводят к тому же результату. Что делать?
procedure CaptureScreenRect(Bit: TBitmap; ARect: TRect);
var
ScreenDC: HDC;
begin
with Bit, ARect do
begin
Width := Right-Left;
Height := Bottom-Top;
Palette := GetSystemPalette;
ScreenDC := GetWindowDC(GetDeskTopWindow);
try
BitBlt(Canvas.Handle, 0, 0, Width, Height,
ScreenDC, Left, Top, SRCCOPY);
finally
ReleaseDC(0, ScreenDC);
end;
Palette := GetSystemPalette;
end;
end;
З.Ы. При нажатии на кнопку PrintScreen все нормально фоткается. Как можно в проге реализовать то, что происходит при нажатии на нее?
Ответы присылайте, пожалуйста, мне на e-mail.
i-s-v (2004-08-06 18:02:00) [1]I>
> Anatoly Podgoretsky
Не знаю. Писал по-скорому...
> AndersoNRules
Наверное так и прийдется сделать...
> TUser
Я этот вопрос уже задавал, но ничего толкового и не увидел... В этот раз, вижу, то же самое...
AndersoNRules (2004-08-05 21:28:00) [2]a kak nascheot najati PrintScreen programno,a potom iz buffera zapisati kuda nado?
TUser (2004-08-05 19:19:00) [3]Буквально недавно видел. То ли на форуме, то ли в кн. Ф.Юаня. По-моему, все-таки на форму, так что ищи.
Anatoly Podgoretsky (2004-08-05 18:48:00) [4]Что случилось с твоим языком, почему так коверкаешь?