![]() |
Re: WM_NCPAINT - Rahmen selber Zeichnen klappt nicht so rech
Zitat:
Delphi-Quellcode:
Das Problem ist das der Rahmen zwar gezeichnet wird aber beim ändern der Grösse des Fensters nicht exakt gezeichnet wird.
DCX_USERSTYLE = $10000; // oder war es $100000 *grübel*
//... hdc := GetDCEx(Handle, msg.RGN, DCX_WINDOW or DCX_INTERSECTRGN or USERSTYLE); // zur sicherheit mach ich dann noch: if hdc = 0 then hdc := GetWindowDC(Handle); |
Re: WM_NCPAINT - Rahmen selber Zeichnen klappt nicht so rech
Also ich habe mir mal dein Beispiel aus dem ersten Post geladen und gestartet.
Man hat doch garnicht die Möglichkeit die Grösse zu ändern, oder meinst du per width:= etc. ? Ansonsten schaue dir nochmal die WM_NCCALCSIZE, vermute auf den ersten Gedanken, dass dort das Progblem liegt. |
Re: WM_NCPAINT - Rahmen selber Zeichnen klappt nicht so rech
Moin Matti,
ein Stück weiter gekommen bin ich ja. Schau's Dir doch mal an, ob es weiterhilft.
Delphi-Quellcode:
procedure TForm1.WMNCPAINT(var Msg: TWMNCPaint);
const DCX_USESTYLE = $10000; var aCanvas: TCanvas; begin inherited; aCanvas := TCanvas.Create; try aCanvas.Handle := GetDCEx(self.Handle,Msg.RGN,DCX_WINDOW or DCX_INTERSECTRGN or DCX_USESTYLE); aCanvas.Pen.Color := clLime; aCanvas.Brush.Style := bsFDiagonal {bsSolid}; aCanvas.Brush.Color := clBlack; aCanvas.Rectangle(0, 0, Width, Height); Msg.Result := 0; finally ReleaseDC(Handle, aCanvas.Handle); aCanvas.Free; end; end; procedure TForm1.WMPAINT(var Msg: TWMPaint); var aCanvas : TCanvas; begin inherited; aCanvas := TCanvas.Create; try aCanvas.Handle := Msg.DC; aCanvas.Pen.Color := clBtnFace; self.DoubleBuffered := true; finally aCanvas.Free; end; Msg.Result := 1; end; |
Re: WM_NCPAINT - Rahmen selber Zeichnen klappt nicht so rech
Moin zusammen,
ich habe, glaube ich zumindest, so etwas mal mit dem Real-Player gesehen. Und irgendwie auch mal über Titelleist und real-player gegooglet und auch was gefunden, weiß jeodch leider nicht mehr, wie es hieß. Vielleicht hilfst ja weiter. Was ist sonst mit dem BoundsRect, könnte das vielleicht weiterhelfen, um den CLientbereich einzugrenzen? LG Der TAC |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz