Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > Как взять цвет пикселя с окна игры?


Автор: Griffon 2.4.2008, 17:12
Нужно 2 функции:
1) Клик по окну программы, и функция возвращает координаты места этого клика. (не первичная важность)
2) В функцию передаем полученные ранее координаты, и она возвращает код цвета пикселя в этом месте экрана. (основная важность. На крайний случай координаты смогу узнать "вручную").
Помогите, пожалуйста.

Автор: Bitter 2.4.2008, 20:01
Код

function GetDesktopColor(x,y:integer):integer;
var DC:HDC;
begin
 DC:=GetDC(0);
 Result:=GetPixel(DC,x,y);
 ReleaseDC(0,DC);
end;

...................

  GetCursorPos(xx);
  Form.Panel.Color:=GetDesktopColor(xx.x,xx.y);

Автор: Griffon 2.4.2008, 22:26
Цитата(Bitter @ 2.4.2008,  20:01)
Код

function GetDesktopColor(x,y:integer):integer;
var DC:HDC;
begin
 DC:=GetDC(0);
 Result:=GetPixel(DC,x,y);
 ReleaseDC(0,DC);
end;

...................

  GetCursorPos(xx);
  Form.Panel.Color:=GetDesktopColor(xx.x,xx.y);

Спасибо, но это же с десктопа? А координаты с окна программы? окно же могут двигать туда-сюда...
Вариант с окна взять (окно передать например хендлером)?

Автор: Bitter 3.4.2008, 19:37
А чем не устраивает цвет "десктопа"? Цвет "десктопа", это НЕ цвет картинки на рабочем столе. Это цвет того, что у тебя под курсором.

Или тебе нужен цвет окна, которое перекрыто другим окном? Если нет, тогда пользуйся той функцией, которую я написал....

Или я просто не понимаю в чём задача.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)