TCanvas z innego okienka

0

Witam,

Pisze program ktory musi odczytac zawartosc innego okienka. W tym celu program szuka handle danego okienka:

var han: HDC;
      canv: TCanvas;

han:=FindWindow(nil, capt_okna);

a nastepnie tworze nowy obiekt TCanvas i probuje mu przypisac odczytanie handle

Canv.Handle:=han;
Canv.Create;
  // tu sa instrukcje w ktorych odwoluje sie do Canv.pixels[x,y];
Canv.Free;

niestety

Canv.create

powoduje błąd.

Co w moim programie jest nie tak i w jak można napisać poprawny progrm który odczytuje coś z formatki innego okna.

Z góry dziękuję i pozdrawiam,

0

Canv := TCanvas.Create;

0

Canv := TCanvas.Create;

to niestety nic nie zmieniło. Wciąż jest błąd: "Access violation at address 00415AA9 in module..." :-(

Co mam zrobic by to dzialalo?

0

To może to:

Canv.Handle := GetDC(han);
0

Cześć! Chyba Canvas nie przejdzie, próbuj korzystać z API, beginPaint, EndPaint, LineTo itp... są one dokładnie i ładnie :P opisane w Helpie, a znajdują się ich deklaracje w module Windows (ach, jaki ja mądry :P ).

0

...chyba Canvas nie przjdzie...

Canvas przejdzie... Spróbuj czymś takim (albo czymś w podobie) :

FullCanvas.Handle = GetWindowDC(Handle);
   FullCanvas.Draw(100, 5, Image1.Picture.Graphic);
   ReleaseDC(Handle, FullCanvas.Handle);

(Zaraz zainstaluję Delphi to sprawdzę...) Maiłby on narysować na cudzym oknie zawartość Image1... Tym możnaby chyba nawet rysować po 'cudzym' pasku tytułu (ja tak kiedyś w BCB robiłem skin do Windowsa - Nawet działało:) )...

1 użytkowników online, w tym zalogowanych: 0, gości: 1