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.

'über das Objekt IFont
Dim myFont As IFont
myFont.Bold = True
myFont.Size = 12
myFont.Name = "Arial"
BackBuffer.SetFont myFont

'oder über ein Form

BackBuffer.SetFont me.Font

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 ddfullscreen.zip Download
tip0114.zip
 (10,8 kB)
Downloadzeit: <1 Min. - 28.8k / <1 Min. - ISDN Downloads bisher: [ 3153 ]

Startseite | VB-/VBA-Tipps | Projekte | Tutorials | API-Referenz | Komponenten | Bücherecke | Gewinnspiele | VB-/VBA-Forum | DirectX-Forum | VB.Net | .Net-Forum | Foren-Archiv | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report

Letzte Aktualisierung, Sonntag, 12. August 2001