|
Einfaches
Zeichnen mit DirectDraw |
|
Mit
DirectDraw kann natürlich auch
ganz "normal" gezeichnet werden. Dafür
gibt es die Funktionen DrawLine, DrawBox,
DrawRoundedBox, DrawCircle
und DrawEllipse. Über die Funktionen
setDrawStyle wird die Linienart
und über setDrawWidth die Linienstärke eingestellt.
Damit man aber auch etwas sieht, muss die gewünschte
Farbe mit SetForeColor gesetzt werden.
|
Für die Ausgabe von Text gibt es die Funktion
DrawText und für das Einstellen
der Schriftart SetFont
|
Mit der Funktion BltColorFill wird ein
rechteckiger Bereich mit einer Farbe gefüllt.
|
DrawLine(x1
As Long, y1 As Long, x2 As Long, y2 As Long)
|
Der Anfangspunkt
der Linie wird mit x1 und y1 beschrieben,
und der Endpunkt mit x2 und y2.
|
|
|
BackBuffer.DrawLine
500, 300, 550, 200 |
|
|
DrawBox(x1
As Long, y1 As Long, x2 As Long, y2 As Long)
|
Die
linke obere Ecke wird mit x1 und y1 beschrieben,
und die rechte untere Ecke mit x2 und y2. |
|
|
BackBuffer.DrawBox
300, 200, 350, 300 |
|
|
DrawRoundedBox(x1
As Long, y1 As Long, x2 As Long, y2 As Long, rw As Long,
rh As Long) |
Die
linke obere Ecke wird mit x1 und y1 beschrieben,
und die rechte untere Ecke mit x2 und y2.
Mit rw wird die Breite und mit rh die Höhe
der gerundeten Ecke angegeben. |
|
|
BackBuffer.DrawRoundedBox
400, 200, 480, 300, 25, 25
|
|
|
DrawCircle(x1
As Long, y1 As Long, r As Long) |
Der
Mittelpunkt des Kreises wird mit x1 und y1
angegeben. Das Argument r bestimmt den Radius.
|
|
|
BackBuffer.DrawCircle
100, 250, 50 |
|
|
DrawEllipse(x1
As Long, y1 As Long, x2 As Long, y2 As Long)
|
Die Ellipse wird über ein Rechteck gezeichnet. Die
linke obere über x1 und y1, sowie die
rechte untere Ecke über x2 und y2. |
|
|
BackBuffer.DrawEllipse
200, 200, 250, 300 |
|
|
setDrawStyle(drawStyle
As Long) |
Setzen
der Linienart. Mögliche Werte sind vbDash,
vbDashDot, vbDashDotDot, vbDot, vbInsideSolid,
vbInvisible und vbSolid.
|
|
|
BackBuffer.setDrawStyle
DrawStyleConstants.vbDash |
|
|
setDrawWidth(drawWidth
As Long) |
Setzen der Linienstärke. |
|
|
BackBuffer.setDrawWidth
1 |
|
|
SetForeColor(color
As Long) |
Setzt die Vordergrundfarbe für die Funktionen DrawLine,
DrawBox, DrawRoundedbox, DrawCircle,
DrawEllipse und DrawText. |
|
|
BackBuffer.SetForeColor
vbRed |
|
|
DrawText(x
As Long, y As Long, text As String, b As Boolean)
|
Über x und y wird angegeben wohin der
Text auf der Surface gezeichnet werden soll. Steht
b auf False, dann wird der Text an die mit x,
y angegebene
Position gezeichnet. Ist b auf True, dann wird der Text
am Ende der letzten DrawText-Position gezeichnet (hierbei muss
dann x, y auf 0, 0 gesetzt werden). |
|
|
BackBuffer.DrawText
10, 10, "VB-Fun", False |
|
|
SetFont(font
As IFont) |
Mit dieser Funktion wird die gewünschte Schriftart
eingestellt. Ohne einen Font zu setzen nimmt DirectDraw
die Windows-Standard-Schrift. Der Funktion kann entweder
ein IFont-Objekt übegeben werden, oder
die Font-Eigenschaft einer Form oder eines Steuerelements.
|
|
|
SetFontBackColor(color
As Long) |
Setzt die Hintergrundfarbe vom Text. Damit die Farbe auch
sichtbar wird muss mit der Funktion SetFontTransparency
die transparente Schrift ausgeschaltet werden. |
|
|
BackBuffer.SetFontBackColor vbWhite
|
|
|
SetFontTransparency(b
As Boolean) |
Über diese Funktion wird der Text auf Transparent gesetzt.
Standardeinstellung ist True. |
|
|
BackBuffer.SetFontTransparency
False
|
|
|
BltColorFill(destRect
As RECT, fillvalue As Long) |
Füllt das Rechteck destRect (siehe Datentyp
RECT bei Grundlagen)
mit der Farbe fillvalue. |
|
|
Dim destrect As RECT
With destrect
.Left = 50: .Right = 550
.Top = 350: .Bottom = 370
End With
BackBuffer.BltColorFill destrect, vbWhite
|
|
|
Ein Beispiel
zum einfachen Zeichnen mit DirectDraw können Sie hier
downloaden. Dieses Beispiel finden Sie auch komplett in
der Tipp-Rubrik. |
|
|
Download
tip0114.zip
(10,8 kB) |
|
Downloads
bisher: [ 3153
] |
|