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