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