OldSchoolHack

Register / Login English

Text Zentrieren (D3D)

icon Thread: Text Zentrieren (D3D)

Join Date: Apr 2010

Posts: 168

Ein Beispiel wie ich meinen Text zetriere.

[Editiert]

Parameter:
- text: Der zu Schreibende Text
- x1: Startpunkt auf der X-Achse
- x2: Endpunkt auf der X-Achse
- pFont: Ziel-Schriftart

CPP Code:
  1.  
  2. /* Berechnent die Startposition des Textes, welcher zentriert auf einen X-Achsenabschnitt gezeichnet werden soll ;-) */
  3. /* Textlängenberechnung: KN4CK3R @ oldschoolhack.de */
  4. INT CD3DMenu::GetCenterPosition(LPCWSTR text, INT x1, INT x2, LPD3DXFONT pFont)
  5. {
  6. if(pFont != NULL && (x1 + x2) > 0 && text != L"")
  7. {
  8. // Mittelpunkt der Zielfläche
  9. INT xM = x1 + (x2 - x1) / 2;
  10.  
  11. // Ziel-Rechteck
  12. RECT tmpRect = { 0, 0, 0, 0};
  13.  
  14. // Text zeichnen (Unsichtbar)
  15. pFont->DrawText(NULL, text, -1, &tmpRect, DT_CALCRECT, 0x0);
  16.  
  17. // Breite des Textes
  18. INT iLen = tmpRect.right;
  19.  
  20. return xM - (iLen / 2);
  21. }
  22.  
  23. return 0;
  24. }
  25.  


Benutzen könnte man dies dann so:

CPP Code:
  1.  
  2. // Zentrierte Textstartposition
  3. INT TEXT_START_POS = CD3DMenu::GetCenterPosition(L"ZeRoKiLLeR", 30, 180, pFont_Title);
  4.  

Danke an KN4CK3R für die tatsächliche Textlängenbrechnung !  

__________________

mfg ZeRoKiLLeR

*Hax? Nur solange man mit Hack besser als ohne ist * :schaden:

Only registered and activated users can see links.

Let's Rock ! :schaden: