Конвертация CppWebBrowser в Image

Инженер_3

Для сканирования видимой части CppWebBrowser и записи в Image есть функция BitBlt(). Пример ниже. Но как сканировать невидимые данные CppWebBrowser и записать их в Image?
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  HWND h = CppWebBrowser1->Handle;
  TRect r;
  GetWindowRect(h, &r);
  HDC d = GetWindowDC(h);
  if(d)
  { Graphics::TBitmap *bmp = new Graphics::TBitmap();
    bmp->Width = r.Width();
    bmp->Height = r.Height();
    BitBlt(bmp->Canvas->Handle, 0, 0, r.Width(), r.Height(), d, 0, 0, SRCCOPY);
    Image1->Picture->Bitmap->Assign(bmp);
    ReleaseDC(h, d);
    delete bmp;
  }
}
4 ответа

Инженер_3

Я как то делал, гемора и костылей очень много (конечно может кто то знает что то простое)..потому советую искать алтернативные варианты.


Инженер_3

Я как то делал, гемора и костылей очень много (конечно может кто то знает что то простое)..потому советую искать алтернативные варианты.
А там у вас была другая функция конвертации или с BitBlt шаманили?


Инженер_3

В памяти отображал весе содержимое страницы и через winapi (куда так же относится BitBlt) собирал картинку. Там вроде даже два решения у меня было, через чистый winapi. А второе я за экраном развертывал форму, программно двигал ползунки, скринил и после склеивал картинку.


Инженер_3

В памяти отображал весе содержимое страницы и через winapi (куда так же относится BitBlt) собирал картинку. Там вроде даже два решения у меня было, через чистый winapi. А второе я за экраном развертывал форму, программно двигал ползунки, скринил и после склеивал картинку.
Второй вариант точно отпадает, т.к. сам CppWebBrowser находится в невидимой области.