Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Frage zu ExcludeClipRect() Funktion! (https://www.delphipraxis.net/194926-frage-zu-excludecliprect-funktion.html)

DualCoreCpu 19. Jan 2018 14:10

Frage zu ExcludeClipRect() Funktion!
 
Hallo,

ich beschäftige mich gerade mit dem Windows API. Es gibt ja doch immer wieder Situationen, in denen die Windows API Kenntnis von Vorteil ist. Und da muss ich mal fragen:

Zeichnet diese Funktion auch oder berechnet die nur die Rechtecke/Regionen, die nach Ausführen der Funktion gezeichnet werden müssen bzw nicht mehr gezeichnet werden dürfen?

himitsu 19. Jan 2018 14:28

AW: Frage zu ExcludeClipRect() Funktion!
 
Die nimmt das aktuell dem DeviceContext zugewiesene Clipping und fügt den neuen Bereich ein, das Ergebnis ist also direkt/sofort dem DC zugewiesen.

"selber" Zeichnen tut diese API aber sowieso niemals.
Nachfolgende Zeichenoperationen arbeiten nur innerhalb des freigegebenen Bereichs.

MSDN-Library durchsuchenExcludeClipRect

DualCoreCpu 19. Jan 2018 17:59

AW: Frage zu ExcludeClipRect() Funktion!
 
Danke für die schnelle Antwort. Aber müsste es laut API Doku nicht heißen:

"extrahiert den neuen Bereich"? Ist doch Exclude. Die verlinkte Doku sagt "... erzeugt existierende Clip Region MINUS die angegebene.

Zeichnen tut die Funktion also nicht sie legt nur den neuen Zeichenbereich fest.

Beim späteren Zeichnen müsste doch dann der Exclude Bereich bei der Zeichenoperation ausgespart werden oder?

Fukiszo 19. Jan 2018 18:28

AW: Frage zu ExcludeClipRect() Funktion!
 
Beispiel: (so nicht aufrufen, nur schnell gekritzelt ums zu veranschaulichen)

Code:
 var x: TRECT;
 begin
  ExcludeClipRect(DC, X.Left, X.Top, X.Right, X.Bottom);
  inherited PaintWindow(DC);
 end:
danach "fehlt" alles was das TRECT beinhaltet.

War das deine Frage?

DualCoreCpu 19. Jan 2018 18:43

AW: Frage zu ExcludeClipRect() Funktion!
 
Zitat:

Zitat von Fukiszo (Beitrag 1391412)
Beispiel: (so nicht aufrufen, nur schnell gekritzelt ums zu veranschaulichen)

Code:
 var x: TRECT;
 begin
  ExcludeClipRect(DC, X.Left, X.Top, X.Right, X.Bottom);
  inherited PaintWindow(DC);
 end:
danach "fehlt" alles was das TRECT beinhaltet.

War das deine Frage?

Danke. Jetzt hab ich es verstanden! :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:08 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