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;
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