<< Gesamtübersicht | << Klassenübersicht | Details der Klasse | Funktionsbeschreibungen |
Verwaltet das "Darstellungs-Gerät". [Mehr ...]
Basisklassen(n) | abgeleitete Klassen | ||
---|---|---|---|
SDevice |
|
Attribut | Typ | Beschreibung |
---|---|---|
currentPaintRect | SRect | Das Rechteck, in dem aktuell gezeichnet werden soll. Es steht innerhalb der onPaint()-Funktion zur Verfügung und beinhaltet logische Koordinaten. |
hdc | HDC | Device-Handle |
hwnd | HWND | Fenster-Handle |
lastPaintRect | SRectc | Rechteck dass alle bisherigen Zeichenopereationen umschließt, seit dem letzten beginPaint() |
noFlicker | BOOL | wenn true wird aus einem parallelem DC gezeichnet und das ergebnis transferiert, so dass der Zeichenprozess (=Flackern) nicht sichtbar ist. Es sollte vor der Erzeugung des Fensters (z.B. in onPreCreateWindow) gesetzt werden. |
ps | PAINTSTRUCT | WIindows-API-Struktur für Zeichenfunktionen. |
pWindow | class SWindow* | Zeiger auf das Fenster, das gezeichnet werden soll. |
status | DWORD | Enthält verschiedene Statusinformationen. Kombination aus:
|
textColor | COLORREF | Die Farbe desTextes |
textColorBack | COLORREF | Texthintergrundfarbe |
Attribut | Typ | Beschreibung |
---|---|---|
backgroundBrush | HBRUSH | Handle der Hintergrundfarbe |
backgroundColor | COLORREF | Hintergrundfarbe des Devices |
brush | HBRUSH | Brush-Handle (enthält Füllfarbe) |
brushData | COLORREF | Füllfarbe des Gerätes |
font | HFONT | Schriftart-Handle |
fontData | LOGFONT | Die Schriftart. |
graphicsMode | int |
|
mapMode | int | Ist der beim Zeichen einzustellender MapMode. Er wird bei Beginn jedes Zeichnens festgelegt. |
noFlickerHBitmap | HBITMAP | HBITMAP des noFlicker-HDC |
noFlickerHBitmap_old | HBITMAP | gerettetes HBITMAP |
noFlicker_paintRect | RECT | |
noFlicker_realHDC | HDC | der eigentliche HDC während des noFlicker-Zeichnens |
offsetX | int | letzte X-Koordinate |
offsetY | int | letzte Y-Koordinate |
old_fontData | LOGFONT | alte, gespeicherte Schriftart |
pen | HPEN | Zeichenstift-Handle |
penData | LOGPEN | Der Zeichenstift, enthält Breite, Höhe, Farbe und Style des Stiftes. |
savedDC | int | Zwischengespeicherte Zeichenumgebung eines Fensters. |
textBrush | HBRUSH | Brush-Handle, Handle der Textfarbe |
zoomX | float | Horizontaler Zoomfaktor für metrische MapMode. Kein Zoom = 1. |
zoomY | float | Horizontaler Zoomfaktor für metrische MapMode. Kein Zoom = 1. |
Name | Parameter | Rückgabewert | Beschreibung |
---|---|---|---|
beginPaint | HDC takeHDC=NULL | void | Dient zur Vorbereitung des Zeichens und wird automatisch innerhalb von WM_PAINT behandelt. |
bezier | const SPoint& start, const SPoint& end, const SPoint& control1, const SPoint& control2, int width=SDEV_NOCHANGE, COLORREF color=SDEV_NOCHANGE |
void | Zeichnet eine Bezier-Kurve. |
calcDeviceToLogicalPoint | const SPoint &device | SPoint | Berechnet aus einem Device-Punkt den logischen Punkt. |
calcDeviceToLogicalRect | const SRect &device | SRect | Berechnet aus einem Device-Rect das logische Rect. |
calcDeviceToLogicalX | int device | int | Berechnet aus einem Device-X-Wert den logischen X-Wert. |
calcDeviceToLogicalY | int device | int | Berechnet aus einem Device-Y-Wert den logischen Y-Wert. |
calcLogicalToDevicePoint | const SPoint &logical | SPoint | Berechnet aus einem Logischen-Punkt den Device-Punkt. |
calcLogicalToDeviceRect | const SRect &logical | SRect | Berechnet aus einem logischen Rect das Device-Rect. |
calcLogicalToDeviceX | int logical | int | Berechnet aus einem logischen X-Wert den Device-X-Wert. |
calcLogicalToDeviceY | int logical | int | Berechnet aus einem logischen Y-Wert den Device-Y-Wert. |
drawText | SRect rect, const SString& text, const SString& format="ltwe" |
int | Zeichnet Text in einem Rechteck. |
ellipse | SRect rect, COLORREF pen=SDEV_NOCHANGE , COLORREF fill=SDEV_NOCHANGE |
void | Zeichnet eine Ellipse |
endPaint | void | Dient zum Abschluß des Zeichens und wird automatisch innerhalb von WM_PAINT behandelt. | |
fillRectangle | SRect rect, COLORREF fill=SDEV_NOCHANGE |
void | Füllt einen rechteckigen Bereich. |
getBackgroundColor | COLORREF | Liefert die aktuelle Hintergrundfarbe des Devices. | |
getFont | HFONT | ||
getGraphicsMode | int | Gibt den Grafikmode zurück. | |
getLineHeight | BOOL includingRowSpace=true | int | Ermittelt die Zeilenhöhe des aktuell eingestellten Fonts. |
getMapMode | int | Gibt den aktuellen MapMode zurück, siehe setMapMode() | |
getMaxCharSize | SSize | Ermittelt die maximale Zeichengröße des aktuellen Fonts. | |
getOffsetX | int | Gibt den aktuell eingestellten Offset zurück. | |
getOffsetY | int | Gibt den aktuell eingestellten Offset zurück. | |
getStatus | DWORD | ||
getTextBrush | HBRUSH | Gibt einen Brush mit der Text-Hintergundfarbe zurück. | |
getTextSize | const SString& text | SSize | Ermittelt die Ausdehnung eines Strings wenn er ausgegeben würde. |
getZoomX | float | Gibt den aktuellen Zoom in X-Richtung zurück.. | |
getZoomY | float | Gibt den aktuellen Zoom in Y-Richtung zurück.. | |
line | int x1, int y1, int x2, int y2, COLORREF color=SDEV_NOCHANGE |
void | Zeichnet eine Linie in der angegebenen Farbe. |
pie | SRect bound, int startArc, int endArc, int direction=AD_CLOCKWISE, int size=1, COLORREF border=SDEV_NOCHANGE, COLORREF fill=SDEV_NOCHANGE |
void | Zeichnet einen Kreisausschnitt. |
polygon | SPointList& points, COLORREF pen=SDEV_NOCHANGE, COLORREF fill=SDEV_NOCHANGE |
void | |
rectangle | SRect rect, COLORREF pen=SDEV_NOCHANGE, COLORREF fill=SDEV_NOCHANGE |
void | Zeichnet ein Rechteck. |
roundRect | SRect rect, SSize ellipse, COLORREF pen=SDEV_NOCHANGE, COLORREF fill=SDEV_NOCHANGE |
void | zeichnet ein Rechteck mit abgerundeten Ecken |
setBackgroundColor | COLORREF backColor | void | Legt die Hintergrundfarbe des Fensters fest |
setBold | BOOL bold=true | void | Setzt die Schriftstärke. |
setBrush | COLORREF color | void | setzt die Füllfarbe |
setCurrentBrush | void | Aktiviert den aktuellen Brush. | |
setCurrentFont | void | Aktiviert die aktuelle Schriftart. | |
setCurrentPen | void | Aktiviert den aktuellen Pen. | |
setFont | const SString& name="", int size=SDEV_NOCHANGE, int underline=SDEV_NOCHANGE , int italic=SDEV_NOCHANGE , int weight=SDEV_NOCHANGE |
void | Legt die Standard-Schriftart für dieses Fenster fest. |
setMapMode | int mapmode=MM_HIMETRIC, int graphicsmode=SDEV_AUTO |
void | Diese Funktion merkt sich den bei beginPaint zu setzenden MapMode und GraphicsMode. |
setOffset | int offsetX=SDEV_NOCHANGE, int offsetY=SDEV_NOCHANGE |
void | Setzt den Ausgabe-Offset, d.h. eine Verschiebung. |
setPen | COLORREF color, int width=1, int style=PS_SOLID |
void | Wählt einen Stift aus. |
setTextColor | COLORREF text=SDEV_NOCHANGE, COLORREF back=SDEV_NOCHANGE |
void | Verändert die Textfarbe und die Texthintergrundfarbe |
setZoom | float zoomX, float zoomY | void | Setzt den aktuellen Zoom. |
setZoom | float zoom | void | Setzt den aktuellen Zoom. |
textOut | int x, int y, const SString& text |
void | gibt einen String auf dem Device aus |
textOut | int x, int y, char* pText, int count |
void | Gibt einen String auf dem Device aus. |
Name | Parameter | Rückgabewert | Beschreibung |
---|---|---|---|
addLastPaintRect | SRectc rect | void | fügt das Rechteck zum lastPaintRect hinzu |
addLastPaintRect | const SPoint point | void | fügt den Punkt zum lastPaintRect hinzu |
init | void | initialisiert das Device | |
setZoomAndOffsetOnDC | HDC useHdc=NULL | void | Wendet entsprechend des Grafic- und MapMode die Transformationen an, wenn der DC vorhanden ist. |
startPaint | HDC useHdc=NULL | void | Stellt Modes ein und rettet den DC |
stopPaint | HDC useHdc=NULL | void | Beendet die Zeichenfunktionen, stellt den DC wieder her. |
tempBrushColor | COLORREF color=SDEV_RESTORE | void | Ändert die Farbe temporär und stellt sie wieder her. |
tempPenColor | COLORREF color=SDEV_RESTORE | void | Ändert die Farbe temporär und stellt sie wieder her. |
Verwaltet das "Darstellungs-Gerät".
Diese Klasse verwaltet die Darstellung eines Objektes auf einem Ausgabegerät. Dieses Gerät ist in der Regel der Bildschirm, es kann sich allerdings auch um ein anderes Ausgabegerät z.B. den Drucker handeln.
Jedes sichtbare Objekt der SVL enthält ein Objekt dieser Klasse, das über die Membervariable 'screen' angesprochen werden kann. Dieses Objekt steuert die Bildschirmausgabe des Fensters, Steuerelements, ....
Es gibt zwei Verwendungsmöglichkeiten für das screen-Objekt einer Klasse.
Für die üblichen Veränderungen am Aussehen eines Fensters/Controls/... stehen eine Reihe von Funktionen zur Verfügung. Mit diesen sollte vor dem Erstellen das Erscheinungsbild eingestellt werden. Bei Controls wäre das in der 'onInitWindow()'-Funktion vor dem Aufruf von 'createCtrl(...)'. Für Fenster können diese Zuweisungen in 'onPreCreateWindow()' erfolgen.
SEdit editText; // Schriftart ändert // setFont(schriftart,schriftgröße,unterstrichen,kursiv,fett) editText.screen.setFont("Arial",16,SDEV_NOCHANGE,SDEV_NOCHANGE,SDEV_NOCHANGE); // fette Schrift editText.screen.setBold(true); // textfarbe und texthintergrundfarbe // gelb auf blau editText.screen.setTextColor(RGB(255,255,0),RGB(50,50,200)); // Erzeugen des Edits editText.createCtrl(this,"testtext",20,20);BSP: selber zeichnen
MyClass::onPaint(SDevice& screen) { ... /// ein Rechteck screen.rectangle( rect1, RGB( 0,0,255 ),RGB( 0,255,255)); /// eine Ellipse screen.ellipse( rect2, RGB( 100,100,255 ),RGB( 0,0,255)); ... }
addLastPaintRect(SRectc rect) void |
![]() ![]() |
fügt das Rechteck zum lastPaintRect hinzu
addLastPaintRect(const SPoint point) void |
![]() ![]() |
fügt den Punkt zum lastPaintRect hinzu
beginPaint(HDC takeHDC=NULL) void |
![]() ![]() |
Dient zur Vorbereitung des Zeichens und wird automatisch innerhalb von WM_PAINT behandelt.
Dies ist eine interne SVL-Funktion und muss durch den Benutzer der SVL nicht bedient werden.
takeHDC | HDC der abweichend verwendet werden soll |
bezier(const SPoint& start, const SPoint& end, const SPoint& control1, const SPoint& control2, int width=SDEV_NOCHANGE, COLORREF color=SDEV_NOCHANGE) void |
![]() ![]() |
Zeichnet eine Bezier-Kurve.
start | Startpunkt |
end | Endpunkt |
control1 | 1. Steuerungspunkt der Kurve |
control2 | 2. Steuerungspunkt der Kurve |
width | Linienbreite |
color | Linienfarbe |
calcDeviceToLogicalPoint(const SPoint &device) SPoint |
![]() ![]() |
Berechnet aus einem Device-Punkt den logischen Punkt.
calcDeviceToLogicalRect(const SRect &device) SRect |
![]() ![]() |
Berechnet aus einem Device-Rect das logische Rect.
calcDeviceToLogicalX(int device) int |
![]() ![]() |
Berechnet aus einem Device-X-Wert den logischen X-Wert.
calcDeviceToLogicalY(int device) int |
![]() ![]() |
Berechnet aus einem Device-Y-Wert den logischen Y-Wert.
calcLogicalToDevicePoint(const SPoint &logical) SPoint |
![]() ![]() |
Berechnet aus einem Logischen-Punkt den Device-Punkt.
calcLogicalToDeviceRect(const SRect &logical) SRect |
![]() ![]() |
Berechnet aus einem logischen Rect das Device-Rect.
calcLogicalToDeviceX(int logical) int |
![]() ![]() |
Berechnet aus einem logischen X-Wert den Device-X-Wert.
calcLogicalToDeviceY(int logical) int |
![]() ![]() |
Berechnet aus einem logischen Y-Wert den Device-Y-Wert.
drawText(SRect rect, const SString& text, const SString& format="ltwe") int |
![]() ![]() |
Zeichnet Text in einem Rechteck.
rect | Rechteck in dem gezeichnet wird |
text | auszugebender Text, mehrzeilig mit \r\n umgebrochen |
format | Art der Ausgabe:
|
ellipse(SRect rect, COLORREF pen=SDEV_NOCHANGE , COLORREF fill=SDEV_NOCHANGE) void |
![]() ![]() |
Zeichnet eine Ellipse
in der angegebenen Farbe, mit der angegebenen Füllfarbe
rect | Rechteck in dem die Ellipse gezeichnet werden soll |
pen | Zeichenfarbe (Randfarbe) |
fill | Füllfarbe |
endPaint() void |
![]() ![]() |
Dient zum Abschluß des Zeichens und wird automatisch innerhalb von WM_PAINT behandelt.
Dies ist eine interne SVL-Funktion und muss durch den Benutzer der SVL nicht bedient werden.
fillRectangle(SRect rect, COLORREF fill=SDEV_NOCHANGE) void |
![]() ![]() |
Füllt einen rechteckigen Bereich.
rect | Position und Größe des Rechteckes |
fill | Füllfarbe wenn SDEV_NOCHANGE dann aktuelle Füllfarbe |
getBackgroundColor() COLORREF |
![]() ![]() |
Liefert die aktuelle Hintergrundfarbe des Devices.
COLORREF | Hintergrundfarbe |
getFont() HFONT |
![]() ![]() |
HFONT | die aktuelle Schrift |
getGraphicsMode() int |
![]() ![]() |
Gibt den Grafikmode zurück.
getLineHeight(BOOL includingRowSpace=true) int |
![]() ![]() |
Ermittelt die Zeilenhöhe des aktuell eingestellten Fonts.
includingRowSpace | Zeilenhöhe wird inklusive des Zeilenabstandes errechnet |
int | Zeilenhöhe |
getMapMode() int |
![]() ![]() |
Gibt den aktuellen MapMode zurück, siehe setMapMode()
getMaxCharSize() SSize |
![]() ![]() |
Ermittelt die maximale Zeichengröße des aktuellen Fonts.
Dabei beeinflußt der MapMode (u.a. der Zoom) das Ergebnis.
Diese Funktion kann außerhalb einer onPaint-Funktion aufgerufen werden.
SSize | maximale Zeichengröße in logischen Einheiten. |
getOffsetX() int |
![]() ![]() |
Gibt den aktuell eingestellten Offset zurück.
getOffsetY() int |
![]() ![]() |
Gibt den aktuell eingestellten Offset zurück.
getStatus() DWORD |
![]() ![]() |
DWORD | status des Devices |
getTextBrush() HBRUSH |
![]() ![]() |
Gibt einen Brush mit der Text-Hintergundfarbe zurück.
Für die Erzeugung und Freigabe des Brush sorgt diese Klasse.
HBRUSH | Brush des Text-Hintergrundes |
getTextSize(const SString& text) SSize |
![]() ![]() |
Ermittelt die Ausdehnung eines Strings wenn er ausgegeben würde.
text | String dessen Ausdehnung ermittelt werden soll |
SSize | Ausdehnung des Strings |
getZoomX() float |
![]() ![]() |
Gibt den aktuellen Zoom in X-Richtung zurück..
zoomX | horizontaler Zoomfaktor |
getZoomY() float |
![]() ![]() |
Gibt den aktuellen Zoom in Y-Richtung zurück..
zoomX | vertikaler Zoomfaktor |
init() void |
![]() ![]() |
initialisiert das Device
line(int x1, int y1, int x2, int y2, COLORREF color=SDEV_NOCHANGE) void |
![]() ![]() |
Zeichnet eine Linie in der angegebenen Farbe.
Es wird eine Linie zwischen den beiden Punkten (x1, y1) und (x2, y2) gezeichnet.
x1 | X-Koordinate des 1. Punktes |
y1 | Y-Koordinate des 1. Punktes |
x2 | X-Koordinate des 2. Punktes |
y2 | Y-Koordinate des 2. Punktes |
color | Linienfarbe, wenn nicht angegeben wird die zuvor verwendete Pen-Farbe benutzt. |
pie(SRect bound, int startArc, int endArc, int direction=AD_CLOCKWISE, int size=1, COLORREF border=SDEV_NOCHANGE, COLORREF fill=SDEV_NOCHANGE) void |
![]() ![]() |
Zeichnet einen Kreisausschnitt.
Die Größe des Kreises/der Ellipse wird durch das umschließende Rechteck (bound) festgelegt. Durch die beiden Winkel 'startArc' und 'endArc' wird der Teil des Kreises der zu sehen ist festgelegt. Die Winkel werden von '12 Uhr' aus gemessen.
bound | umgebendes Rechteck (Ist dieses Rechteck ein Quadrat entsteht ein Kreis sonst eine Ellipse) |
startArc | Startwinkel des Kreisausschnitts (beginnt bei '12Uhr') |
endArc | Endwinkel des Kreisausschnitts (beginnt bei '12Uhr') |
direction | Zeichenrichtung
|
size | Linienstärke in Pixel |
border | Linienfarbe |
fill | Füllfarbe |
polygon(SPointList& points, COLORREF pen=SDEV_NOCHANGE, COLORREF fill=SDEV_NOCHANGE) void |
![]() ![]() |
rectangle(SRect rect, COLORREF pen=SDEV_NOCHANGE, COLORREF fill=SDEV_NOCHANGE) void |
![]() ![]() |
Zeichnet ein Rechteck.
rect | Position und Größe des Rechteckes |
pen | Zeichenfarbe (Rahmenfarbe) SDEV_NOCHANGE dann aktuelle Zeichenfarbe |
fill | Füllfarbe wenn SDEV_NOCHANGE dann aktuelle Füllfarbe |
roundRect(SRect rect, SSize ellipse, COLORREF pen=SDEV_NOCHANGE, COLORREF fill=SDEV_NOCHANGE) void |
![]() ![]() |
zeichnet ein Rechteck mit abgerundeten Ecken
rect | Größe und Position des zu zeichnenden Rechtecks |
ellipse | x und y der zur Rundung zu verwendenden Ellipse |
pen | Zeichenfarbe SDEV_NOCOLOR dann aktuelle Farbe |
fil | Hintergrundfarbe SDEV_NOCOLOR dann aktuelle Farbe |
setBackgroundColor(COLORREF backColor) void |
![]() ![]() |
Legt die Hintergrundfarbe des Fensters fest
setBold(BOOL bold=true) void |
![]() ![]() |
Setzt die Schriftstärke.
bold | wenn true wird fett ausgewählt (FW_BOLD), wenn false wird normal ausgewählt (FW_NORMAL) |
setBrush(COLORREF color) void |
![]() ![]() |
setzt die Füllfarbe
color | neue Füllfarbe SDEV_NOCOLOR setzt Transparente Füllung |
setCurrentBrush() void |
|