Einzelnen Beitrag anzeigen

Black-Horse

Registriert seit: 29. Aug 2007
9 Beiträge
 
#1

Zeichnen auf Fremdes Panel

  Alt 21. Feb 2008, 11:55
Hallo,

ich möchte gerne in einer Fremden Applikation etwas zeichnen,
dafür habe ich mir nen Testprogramm geshcrieben das nur ein Panel beinhaltet und ich habe ein Programm geshcrieben, dass darin einen Kreis zeichnen soll.
Also ermittle ich mit Das Handle der Application und dachte mir, dass ich dann, wie auf dem desktop, zeichne, jedoch funktioniert das nicht, ich bekomme keine anzeige, wenn ich GetWindowDC(0) anstelle von GetWindowDc(WindowHandle) aufrufe zeichnet er auch korrekt auf meinem desktop.


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
 DCanvas: TCanvas;
 DHandle: HWND;
begin
  TheWindowHandle:=FindAWindow('Programmsize', '');
  if TheWindowHandle=0 then
    ShowMessage('Window not found!')
  else
  begin
    ShowWindow(TheWindowHandle, SW_SHOW);
    DHandle := GetWindowDC(TheWindowHandle);
    //DHandle := GetWindowDC(0);
    if DHandle<>0 then
    begin
     try
       DCanvas:=TCanvas.Create;
       try
         DCanvas.Handle:=DHandle;
         DCanvas.Font.Color:=clRed;
         DCanvas.Font.Size:=72;
         DCanvas.Brush.Style:=bsClear;
         DCanvas.TextOut(20, 20, 'Ein');
         DCanvas.Brush.Style := bsDiagCross;
         DCanvas.Ellipse(0, 0, 100, 100);



       finally
         DCanvas.Free;
       end;
      finally
        ReleaseDc(TheWindowHandle, DHandle)
      end;
    end
  end;
end;
Danke
  Mit Zitat antworten Zitat