Laden...

Client area in Fenster ermitteln

Erstellt von mosspower vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.467 Views
mosspower Themenstarter:in
456 Beiträge seit 2007
vor 16 Jahren
Client area in Fenster ermitteln

Hallo,

weiss jemand von euch, wie ich aus einem Fenster die Koordinaten des Client-Bereichs bekomme? Gibt es da schon etwas fertiges (User32 oder GDI32)? Hinergrund ist der, ich möchte ein Image von einem Fenster machen, auch wenn es horizontale- und vertikale Scrollbalken hat. Wenn ich jetzt immer anfange die Pixel zu zählen (von Menu bis Anfang ect.) und die dann nach jedem scrollen wieder abziehe, ist das nicht gut, wenn sich mal wieder der Browser ändert oder User anderes Theme (Windows) einstellt. Hat jemand ein Beispiel oder ein Link? Es muss doch möglich sein den Clientbereich herauszufinden. Danke schon mal im voraus.

S
506 Beiträge seit 2006
vor 16 Jahren

ja dafür musste du keine api einbinden, das kann das .NET-Framework auch so.

nimm mal die eigenschaft "ClientRectangle" einer Form.

mit PointToClient oder PointToScreen kannst du die koordinaten dann transformieren.

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo Stu42,

das ClientRectangle hat leider die unangenehme Eigenschaft, dass X und Y immer 0 sind. Man kann auf dem ClientRectangle also nur die Größe, aber leider nicht die Position der Clientarea ermitteln.

Hallo mosspower,

eine Möglichkeit wäre vielleicht, ein Panel mit DockStyle.Fill zu erzeugen und dann dessen Location und Size auszulesen bzw. diese Werte per PointToClient oder PointToScreen zu ermitteln.

herbivore

2.921 Beiträge seit 2005
vor 16 Jahren

was ist mit der Funktion GetClientRect, per P/Invoke?

Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.

mosspower Themenstarter:in
456 Beiträge seit 2007
vor 16 Jahren

Original von dr4g0n76
was ist mit der Funktion GetClientRect, per P/Invoke?

ne, wie herbivore schon angedeutet hat,

Pointer to a RECT structure that receives the client coordinates. The left and top members are zero. The right and bottom members contain the width and height of the window.

Source

Naja, ich habe nach noch längerem Suchen einfach aufgegeben und fange jetzt immer bei 7/108, die wurden als Konstanten hinterlegt und können ggf. (neue Browser Version ect.) angepasst werden. Jetzt habe ich das Problem, dass PrintWindow immer mal wieder (also total willkürlich) schwarze Bilder schießt (oder Teile davon sind schwarz) ... scheint aber ein known Bug zu sein, probiere das mal mit wieder mit BitBlt, die wollte ich zwar vermeiden, da das Fenster hier im Vordergrund sein muss, aber wenn es nicht anders geht. Danke für Eure Hilfe und Ratschläge.