Показать сообщение отдельно
  #2  
Старый 05.04.2011, 00:36
Homez Homez вне форума
Прохожий
 
Регистрация: 10.03.2011
Сообщения: 20
Репутация: 10
По умолчанию

А, сам практически ответил на свой вопрос. Вот код, который копирует текущее изображение с активной в данный момент формы на холст родной формы:

Код:
Window := GetForegroundWindow();
  DC := GetDC(Window);
  for i := 0 to 100 do
    for j := 0 to 100 do
    begin
      Canvas.Pixels[i, j] := GetPixel(DC, i, j);
    end;
  ReleaseDC(Window, DC);

То есть, мы получаем hDC чужой формы и вольны делать с ним что угодно, читать пиксели с него и даже рисовать на нем. Но вот мое замечание: данный код работает очень медленно. Для кусочка 100*100 функция GetPixel вызывается 10 000 раз! Нет ли какого-нибудь способа считать с DC чужой формы целый ректангл за один вызов функции Win32 API?
Ответить с цитированием