Zitat von
Luckie:
Nachtrag: ReleaseDC nicht vergessen!
Ja habs mir gedacht denn der Canvas zeichnet nicht immer neu
Trotzdem wie schon bei anderen!
Das problem ist nun das die schrift flackert.
Mit WM_PAINT ließ es sich leider nicht verwirklichen.
Kann leider da mit Bitmaps erstellen nicht viel machen da ich keine Form verwende.
Was gäbe es da noch?
Habs mal mit TextOut versucht
Delphi-Quellcode:
procedure Overlay(
handle: HWND; Text: PChar);
var
DC: HDC;
OCanvas: TCanvas;
begin
DC := GetDC(
handle);
OCanvas := TCanvas.Create;
OCanvas.Handle :=
DC;
BeginPath(OCanvas.Handle);
OCanvas.Font.Color := clwhite;
OCanvas.Font.
Name := '
Arial';
OCanvas.Font.Size := 8;
SetBkMode(OCanvas.Handle,TRANSPARENT);
EndPath(OCanvas.Handle);
OCanvas.TextOut(0, 0, Text);
ReleaseDC(
handle,
dc);
end;
EDIT:
Da ich eh die
Unit Graphics einfügen mußte
Kann ich auch direkt über canvas gehen
Allerdings ändert auch die procedure nix am Flackern.
Theoretisch müßte ich ein Bitmap Transparent auf das Fenster(hwnd) zeichen in dem dann die Schrift
dargestellt wird.
Nur die frage ob sich das dann auch beim neuzeichnen löscht.
Da es ja auch nur auf den
dc gezeichnet wird.
gruß