SRect

Verwaltet ein Rechteck. [Mehr ...]

Vererbung

Basisklassen(n)   abgeleitete Klassen
  SRect
SRectc
Container

Attribute

public:

Attribut Typ Beschreibung
cartesian BOOL Angabe ob Bildschirmkoordinaten (Nullpunkt links oben [Standard]) oder ein normales kartesisches Koordinatensystem (Nullpunkt links unten) verwendet wird.
height long Höhe des Rechtecks, immer positiv
left long Abstand von Links / X-Koordinate
top long Abstand von Oben / Y-Koordinate
width long Breite des Rechtecks, immer positiv

protected:

Attribut Typ Beschreibung
tempRect mutable RECT RECT-Struktur für die WIN32-API

Operationen

public:

Name Parameter Rückgabewert Beschreibung
addMargin int margin void Vergrößert das Rechteck in alle Richtungen
bottom int Berechnet die "untere" Y-Koordinate des Rechtecks aus top und height, wobei immer nach unten gegangen wird in Abhängigkeit von cartesian.
bringInRect SRect container,
BOOL enableResize=true
void Verschiebt und verkleinert bei Notwendigkeit dieses Rechteck so, dass es in 'container' liegt.
fitInto const SRect& rect,
int align = POS_C
void Passt das aktuelle in das übergebene Rechteck ein.
fromString SString text,
const SString& trenn=",
"
void Liest die Koordinaten der Rechteckes aus einem Zeichenkette.
getCenter SPoint gibt den Mittelpunkt des Rechteckes zurück
getEnclosed const SRect& rect SRect Ermittelt das umschließende Rechteck.
getEnclosed const SPoint& point SRect Ermittelt das umschließende Rechteck aus diesem und dem Punkt.
getRect RECT* Liefert den RECT* für dieses Rechteck.
getSize SSize Gibt die Größe des Rechtecks als SSize-Objekt zurück.
isClipped SRect rect2 int Prüft ob sich diese Rechtecke überlappen.
maxSize SSize maxsize void Verändert das SRect so, dass die Größe maximal 'maxsize' beträgt.
minSize SSize minsize void Verändert das SRect so, dass die Größe mindestens 'minsize' beträgt.
operator== const SRect& r1,
const SRect& r2
bool Überprüft zwei Rechtecke auf Deckungsgleichheit.
pointInRect const SPoint point BOOL Prüft ob ein Punkt in dem Rechteck liegt. Die 'Kante' wird als innerhalb betrachtet.
right int Berechnet die "rechte" X-Koordinate des Rechtecks aus left und width, wobei immer nach rechts gegangen wird.
setRect int left,
int top,
int width,
int height,
BOOL cartesian=FALSE
void Setzt die Größe und Position des Rechtecks.
setRect SRect rect void Setzt die Größe und Position des Rechtecks.
setRect RECT* rect,
BOOL cartesian=FALSE
void Setzt die Größe und Position des Rechtecks.
setRect SPoint p1, SPoint p2 void Setzt das Rechteck aus zwei Punkten und korrigiert dabei die Richtung.
setSize SSize size void Setzt die Größe des Rechtecks.
SRect int left,
int top,
int width,
int height,
BOOL cartesian=FALSE
Konstruktor mit Angabe der Koordinaten und Göße des Rechtecks als Integer-Werte.
SRect RECT* rect Konstruktor mit Angabe der Koordinaten und Göße des Rechtecks als Zeiger auf eine API-RECT-Struktur.
toString const SString& trenn=",
"
SString Wandelt die Rechteck-Koordinaten in eine Zeichenkette um. In der Form: left,top,width,height;

Detailbeschreibung SRect

Verwaltet ein Rechteck.


Das Rechteck ist durch die 4 Integer-Werte 'left', 'top', 'width' und 'height' festgelegt. Diese Attribute können direkt manipuliert werden.
Über die Public-Member 'cartesian' kann festgelegt werden, ob das Rechteck in einem normalen kartesischen Koordinatensystem (Nullpunkt unten links) oder über Bildschirmkoordinaten (Nullpunkt oben links [Standard]) betrachtet wird. Das hat Auswirkungen auf verschiedene Berechnungsfunktionen wie z.B. 'bottom()'.
Verwendet wird diese Klasse z.B. zur Positions- und Größenverwaltung von Fensterobjekten.

Funktionsbeschreibungen

addMargin(int margin) void

Vergrößert das Rechteck in alle Richtungen

Parameter:

margin Betrag um den jede Seite nach außen vergrößert wird, wenn negativ dann verkleinert

bottom() const int

Berechnet die "untere" Y-Koordinate des Rechtecks aus top und height, wobei immer nach unten gegangen wird in Abhängigkeit von cartesian.

bringInRect(SRect container, BOOL enableResize=true) void

Verschiebt und verkleinert bei Notwendigkeit dieses Rechteck so, dass es in 'container' liegt.

Ist dieses Rechteck größer als 'container', so wird die linke obere Ecke in 'container' gebracht. Ansonsten wird so wenig wie möglich verschoben.

Parameter:

container Rechteck in das eingepasst werden soll.
enableResize wenn true wird bei Notwendigkeit auch die Größe angepasst

fitInto(const SRect& rect, int align = POS_C) void

Passt das aktuelle in das übergebene Rechteck ein.

Parameter:

rect Rechteck in das eingepasst werden soll
align Position beim Einpassen
  • POS_NW -> links, oben
  • POS_N -> mitte, oben
  • POS_NE -> rechts, oben
  • POS_W -> links, mitte
  • POS_C -> mitte, mitte
  • POS_E -> rechts, mitte
  • POS_SW -> links, unten
  • POS_S -> mitte, unten
  • POS_SE -> rechts, unten

fromString(SString text, const SString& trenn=",") void

Liest die Koordinaten der Rechteckes aus einem Zeichenkette.

Beispiel: Bsp:

myRect.fromString("100,200,450,670");

Parameter:

text Zeichenkette mit den Koordinaten (links, rechts, breit, hoch)
trenn Zeichenkette die die Trennung zwischen den Werten ist

getCenter() SPoint

gibt den Mittelpunkt des Rechteckes zurück

getEnclosed(const SRect& rect) const SRect

Ermittelt das umschließende Rechteck.

Es wird das kleinste Rechteck, das sowohl das aktuelle als auch das übergebene rechteck umschließt, berechnet und zurückgegeben. Das aktuelle Rechteck legt fest ob Bildschirmkoordinaten oder normale kartesische Koordinaten verwendet werden.

Parameter:

rect Rechteck, das zusammen mit dieser Instanz umschlossen werden soll

Rückgabe:

SRect umschließendes Rechteck

getEnclosed(const SPoint& point) const SRect

Ermittelt das umschließende Rechteck aus diesem und dem Punkt.

Parameter:

point Punkt, das zusammen mit dieser Instanz umschlossen werden soll

Rückgabe:

SRect umschließendes Rechteck

getRect() const RECT*

Liefert den RECT* für dieses Rechteck.

Dieser Pointer wird in verschiedenen WIN32-API-Funktionen zur Positionierung und Größenänderung benötigt.

Rückgabe:

RECT* Zeiger auf die RECT-Struktur des Rechtecks

getSize() const SSize

Gibt die Größe des Rechtecks als SSize-Objekt zurück.

Rückgabe:

SSize Rechteckgröße

isClipped(SRect rect2) const int

Prüft ob sich diese Rechtecke überlappen.

Parameter:

rect2 zu prüfendes Rechteck

Rückgabe:

int Überlappung
  • 0 => keine Überlappung
  • >0 => größte Überlappung x/y

maxSize(SSize maxsize) void

Verändert das SRect so, dass die Größe maximal 'maxsize' beträgt.

Parameter:

maxsize maximale Größe des Rechtecks

minSize(SSize minsize) void

Verändert das SRect so, dass die Größe mindestens 'minsize' beträgt.

Parameter:

minsize minimale Göße des Rechtecks

operator==(const SRect& r1, const SRect& r2) bool

Überprüft zwei Rechtecke auf Deckungsgleichheit.

Alle 4 Attribute des Rechtecks müssen übereinstimmen.

pointInRect(const SPoint point) const BOOL

Prüft ob ein Punkt in dem Rechteck liegt. Die 'Kante' wird als innerhalb betrachtet.

Parameter:

point zu prüfender Punkt

Rückgabe:

BOOL Der Punkt liegt nicht außerhalb des Rechtecks

right() const int

Berechnet die "rechte" X-Koordinate des Rechtecks aus left und width, wobei immer nach rechts gegangen wird.

setRect(int left, int top,int width, int height, BOOL cartesian=FALSE) void

Setzt die Größe und Position des Rechtecks.

Parameter:

left Abstand von links / X-Koordinate
top Abstand von oben / Y-Koordinate
width Breite
height Höhe
cartesian legt fest, ob mit Bildschirmkoordinaten oder im normalen kartesischen Koordinatensystem gearbeitet wird.

setRect(SRect rect) void

Setzt die Größe und Position des Rechtecks.

Parameter:

rect Rechteck dessen Größe und Position übernommen werden soll

setRect(RECT* rect, BOOL cartesian=FALSE) void

Setzt die Größe und Position des Rechtecks.

Parameter:

rect API-Rechteck-Struktur dessen Größe und Position übernommen werden soll
cartesian legt fest, ob mit Bildschirmkoordinaten oder im normalen kartesischen Koordinatensystem gearbeitet wird

setRect(SPoint p1, SPoint p2) void

Setzt das Rechteck aus zwei Punkten und korrigiert dabei die Richtung.

Parameter:

p1 erster Punkt
p2 zweiter Punkt

setSize(SSize size) void

Setzt die Größe des Rechtecks.

Parameter:

size neue Größe

SRect(int left, int top, int width, int height, BOOL cartesian=FALSE)

Konstruktor mit Angabe der Koordinaten und Göße des Rechtecks als Integer-Werte.

Parameter:

left Abstand von links / X-Koordinate
top Abstand von oben / Y-Koordinate
width Breite
height Höhe
cartesian legt fest, ob mit Bildschirmkoordinaten oder im normalen kartesischen Koordinatensystem gearbeitet wird.

SRect(RECT* rect)

Konstruktor mit Angabe der Koordinaten und Göße des Rechtecks als Zeiger auf eine API-RECT-Struktur.

Die API-RECT-Struktur enthält immer Bildschirmkoordinaten.

Parameter:

rect Zeiger auf eine API-RECT-Struktur

toString(const SString& trenn="," ) const SString

Wandelt die Rechteck-Koordinaten in eine Zeichenkette um. In der Form: left,top,width,height;

Parameter:

trenn Trennzeichen als SString

Rückgabe:

SString Rechteck-String