|
Private Sub Render()
'Ziel-Bereich für unseren Text
Dim destrect As RECT
If D3DDevice Is Nothing Then Exit Sub
'BackBuffer wird bereinigt mit blauer Farbe
D3DDevice.Clear 0, ByVal 0, D3DCLEAR_TARGET, &HFF&, 1, 0
'Beginn der Render-Szene
D3DDevice.BeginScene
'Es gibt zwei Möglichkeiten um den Text zu zeichnen.
'Entweder mit der Funktion DrawTextW auf dem D3DXFont-Objekt
'oder mit der DrawText-Funktion vom D3DX-Objekt selbst.
'Wenn ihr das D3DXFont-Objekt verwendet, dann müsst ihr vor
'dem Zeichnen des Textes die Methode Begin und nach dem
'Zeichnen des Textes die Methode End verwenden.
'DirectX zeichnet dann den Text im entsprechenden Format in
'das angegebene Rechteck (destrect).
myFont.Begin
With destrect
.Left = 15
.Top = 5
.Right = 315
.bottom = 50
End With
strText = "DirectX 8 und die Darstellung von Text"
myFont.DrawTextW strText, Len(strText), destrect, _
DT_CENTER Or DT_WORDBREAK, D3DColorMake(1, 1, 1, 1)
With destrect
.Left = 15
.Top = 70
.Right = 315
.bottom = 115
End With
strText = "linksbündiger Text"
myFont.DrawTextW strText, Len(strText), destrect, _
DT_LEFT, D3DColorMake(1, 1, 1, 1)
With destrect
.Left = 15
.Top = 130
.Right = 315
.bottom = 180
End With
strText = "rechtsbündiger Text"
myFont.DrawTextW strText, Len(strText), destrect, _
DT_RIGHT, D3DColorMake(1, 1, 1, 1)
With destrect
.Left = 15
.Top = 190
.Right = 315
.bottom = 240
End With
strText = "automatischer Zeilenumbruch bei langem Text"
myFont.DrawTextW strText, Len(strText), destrect, _
DT_LEFT Or DT_WORDBREAK, D3DColorMake(1, 1, 1, 1)
myFont.End
'Wird die DrawText Methode des D3DX-Objekts verwendet,
'dann müssen keine Anzahl der Zeichen übergeben werden.
'Ansonsten bleibt alles gleich.
'D3DX.DrawText myFont, D3DColorMake(1, 1, 1, 1), _
' "DirectX 8 und die Darstellung von Text", destrect, _
' DT_LEFT Or DT_WORDBREAK
'Ende der Render-Szene
D3DDevice.EndScene
'Kopieren des BackBuffers zum FrontBuffer (Bildschirm)
D3DDevice.Present ByVal 0, ByVal 0, 0, ByVal 0
End Sub
Private Function CreateFont(ByVal f As StdFont) As D3DXFont
Dim iT As IFont
Set iT = f
'Zum Erstellen des D3DXFont-Objektes benötigen wir
'ein D3DDevice und einen Handle des Font-Objektes.
'Da auf normalen Weg im VB6 kein Handle vom Font zur
'Verfügung steht, wird der Umweg über das IFont-Objekt
'genommen.
Set CreateFont = D3DX.CreateFont(D3DDevice, iT.hFont)
End Function
|
|