[API] WMPaint: Das Zeichnen von einem Memo in die Hand nehme

Rund um die LCL und andere Komponenten
Antworten
pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

[API] WMPaint: Das Zeichnen von einem Memo in die Hand nehme

Beitrag von pluto »

Hallo,
ich versuche seit heute(nur Spielerei) in WMPaint nachricht eines Memos irgendwas zu machen z.b. den hintergrund einfärben. Naja das Ziel ist es das Memo Transparent zu bekommen:
WMPaint(var Msg: TLMPaint);
allerdings ist immer msg.dc ein langer negativer wert. so kann ich damit leider nix anfangen.
hat jemand eine Idee ? Die Komponente ist von TCustomMemo abgeleitet.

aber auch msg.PaintStruct^.hdc ist ein langer negativer wert.

Muss ich den DC erst erzeugen ?
http://www.swissdelphicenter.ch/de/showcode.php?id=2150" onclick="window.open(this.href);return false;
das beispiel habe ich zu rate gezogen.

Code: Alles auswählen

procedure TMemoTest.WMPaint(var Msg: TLMPaint);
var
  DC: HDC;
  PS: TPaintStruct;
  Canvas: TCanvas;
begin
  dc:=msg.DC;
  dc := BeginPaint(Handle, PS);
  msg.PaintStruct^.hdc:=;
  Canvas := TCanvas.Create;
  Canvas.Handle    := DC;
  Canvas.Font.Name := Font.Name;
  Canvas.Font.Size := Font.Size;
  Canvas.Font.Color:=clBlue;
  Canvas.Brush.Color:=clRed;
  with Canvas do begin
    FillRect(Self.ClientRect);
  end;
 
  writelN(dc);
 
 
  EndPaint(Handle, PS);
end;
und dc ist immer ein langer negativer wert: -1215651488
Wenn das ein Positiverwert währe könnte ich z.b. per bitblt den Hintergrund von der Parent Komponente holen. oder von einem TBItmap. aber leider geht das auch alles nicht weil halt DC immer so ein wert hat Parent Kom
MFG
Michael Springwald

Antworten