CBitmapFont

Von CSprite abgeleite Klasse zur Ausgabe beliebiger Texte/Zeichen auf Basis eines individuellen Bitmapfonts mit variabler Zeichenbreite.

Da diese Klasse von CSprite abgeleitet ist, können natürlich auch die public Methoden und Eigenschaften von CSprite verwendet werden.

Zur Auswertung von DirectDraw-Fehlern kann das Makro CFX_DDCHECK aus DDrawErrors verwendet werden.


Verfügbare Beispiele


Erforderliche Microsoft DirectX-Version


Erforderliche Microsoft DirectX-Libraries


Abhängigkeiten von weiteren CFXLib-Modulen


Abgeleitet von


Konstruktoren


protected Eigenschaften


public Methoden

zum Anfang

Konstruktoren

CBitmapFont(CDirectDraw* ddObj, const char* szLetters, int nLetterWidths[])

Allgemeine Initialisierung des CBitmapFont-Objekts.

Zur eigentlichen Erzeugung und Bestimmung der Bitmap muss "create" von CBasicWindow verwendet werden. Die verwendete Bitmap muss horizontal alle Zeichen aus szLetters in der jeweilig durch nLetterWidths angegebenen Breite enthalten, d.h. die Summe von nLetterWidhts.

Ein Beispiel:

...
int nLetterWidths[50];
for(int i = 0; i < 50; i++)
   nLetterWidths[i] = 10;
m_bmpFont = new CBitmapFont(m_pDirectDrawObj, "c!?ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.,:;()-`/ ", nLetterWidths);
m_bmpFont->create("abc.bmp", true);
m_bmpFont->drawText("VERSTANDEN?", 0, 0);
...
(siehe auch "SpriteDemo"...)

Parameter:

  • CDirectDraw* ddObj
    Pointer auf das zuvor erzeugte CDirectDraw-Objekt.
  • const char* szLetters
    Character-Array mit den in der Bitmap enthaltenen Zeichen in der entsprechenden Reihenfolge.
  • int nLetterWidths[]
    Integer-Array mit den Breitenangaben (in Pixeln) der in szLetter angegebenen Zeichen.
zum Anfang
protected Eigenschaften

pLetter m_LetterList
Liste der einzelnen Zeichen. pLetter ist eine in CBitmapFont.h deklarierte Struktur, die die Eigenschften eines einzelnen Zeichens kapselt.
zum Anfang
int m_nLetterCount
Anzahl der in "m_LetterList" enthaltenen Zeichen.
zum Anfang
public Methoden

HRESULT drawText(const char* szText, int x, int y)

Ausgabe eines Textes an gewünschter Stelle.

Rückgabe:

  • DD_OK, wenn erfolgreich
  • sonst Fehlercode (Auswertung über das Makro CFX_DDCHECK möglich!)

Parameter:

  • const char* szText
    Anzuzeigender Text, welcher aus Zeichen besteht, die in "m_LetterList" enthalten sind.
  • int x
    X-Koordinate im SecondarySurface, an der die Textausgabe beginnen soll (Linke obere Ecke!).
  • int y
    Y-Koordinate im SecondarySurface, an der die Textausgabe beginnen soll (Linke obere Ecke!).
zum Anfang