Re: Test: Erweitertes Drag & Dock für TBX
Hey,
Ich habe das an die Zeichenroutine an TB2k angelehnt:
Delphi-Quellcode:
Das ganze ist zudem angelehnt an die BeginMoving-Methode aus der TB2Dock.pas.
Size.cx := GetSystemMetrics(SM_CXDLGFRAME);
Size.cy := Size.cx; // Outline zeichnen DC := GetDCEx(GetDesktopWindow, 0, DCX_LOCKWINDOWUPDATE or DCX_CACHE or DCX_WINDOW); TB2Common.DrawHalftoneInvertRect(DC, @OutlineRect, nil, Size, Size); ReleaseDC(GetDesktopWindow, DC); // ... // Outline löschen DC := GetDCEx(GetDesktopWindow, 0, DCX_LOCKWINDOWUPDATE or DCX_CACHE or DCX_WINDOW); SetRectEmpty(R); TB2Common.DrawHalftoneInvertRect(DC, @R, @FLastOutlineRect, Size, Size); ReleaseDC(GetDesktopWindow, DC); // TB2Common.pas procedure DrawHalftoneInvertRect(const DC: HDC; const NewRect, OldRect: PRect; const NewSize, OldSize: TSize); var Brush: HBRUSH; begin Brush := CreateHalftoneBrush; try DrawInvertRect(DC, NewRect, OldRect, NewSize, OldSize, Brush, Brush); finally DeleteObject(Brush); end; end; Viele Grüße |
Re: Test: Erweitertes Drag & Dock für TBX
Hallo,
das Problem wird sein, dass seit Vista das Zeichnen auf den Desktop vermieden werden sollte. Durch den DWM ist das erstens langsamer, und zweitens kann es eben zu solchen Effekten kommen, dass ein Xor nicht mehr funktioniert. Eine Lösung weiß ich aber leider auch nicht (da wäre ich selbst dran interessiert). Gruß xaromz |
Re: Test: Erweitertes Drag & Dock für TBX
Zitat:
|
Re: Test: Erweitertes Drag & Dock für TBX
Hallo,
Zitat:
Gruß xaromz |
Re: Test: Erweitertes Drag & Dock für TBX
Hm, also ich habe jetzt nochmal was geändert. Undzwar wird während des gesamten Drag-Vorgangs nur ein DC benutzt, um zu zeichnen (vorher wurde immer ein neues DC angefordert). Vielleicht liegt da ja der Hund begraben.
|
Re: Test: Erweitertes Drag & Dock für TBX
Hallo,
Zitat:
Gruß xaromz |
Re: Test: Erweitertes Drag & Dock für TBX
Na gut, dann werde ich mir mal den VCL Code zum Docken anschauen, dort geht das ja offensichtlich mit den Rahmen ...
Viele Grüße |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz