-
Есть хэндл окна, окно может перекрываться другими. Как можно найти цвет нужного пикселя этого окна?
-
var H:hwnd;
r,g,b:word;
H1:HDC;
begin
H:=Findwindow(nil,'Безымянный - Блокнот');
H1:=GetDC(H);
r:=GetRValue(GetPixel(H1,100,100));
g:=GetGValue(GetPixel(H1,100,100));
b:=GetBValue(GetPixel(H1,100,100));
showmessage('Blue-'+inttostr(r)+#10+
'Green-'+inttostr(g)+#10+
'Red-'+inttostr(b));
ReleaseDC(H,H1);
end;
так работает только если окно не скрыто другими, можно попробовать вначале активировать нужное окно - но подождем, может кто что умное скажет. -
в ОС < Vista нельзя получить часть изображения окна (а следовательно и точку) скрытого за другими окнами без показа.
-
Rouse_ © (24.03.10 01:09) [3]
> DVM © (23.03.10 18:09) [2]
Ну я бы не был столь категоричен, некоторые окна таки корректно обрабатывают WM_PRINT -
Eraser © (24.03.10 02:09) [4]> некоторые
ключевое слово. -
oldman © (24.03.10 07:57) [5]
> окно может перекрываться другими. Как можно найти цвет нужного
> пикселя этого окна?
Под "верхним" окном нет никаких пикселов.