Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

PD

unregistriert

1

19.01.2006, 20:23

2D-Framework Text Länge in Pixel

Hi, mich würde interessieren ob es eine möglichkeit gibt festzustellen wie lang ein String wäre (in Pixel) wenn man ihn mit einem bestimmten Font schreibt. Damit man z.B. automatische Zeilenumbrüche oder Längenbegrenzungen einbauen kann ^^ Wäre schön wenn jemand ne idee hätte.

Anonymous

unregistriert

2

19.01.2006, 20:29

MSDN --> DrawText suchen --> DT_CALCRECT ist das Flag und in lpRect kommt die Dimension rein.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

3

19.01.2006, 20:32

War auch mein erster Gedanke, aber er meint das 2D Framework
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Anonymous

unregistriert

4

19.01.2006, 20:34

Nox
Was für ein 2D-Framework? Meines? Das von Microsoft? oder welches?

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

5

19.01.2006, 20:36

Schätzungsweise das von David, aber wie kommt es dass du den Flag von einer Funktion aus der ach so evil d3dx lib kennst ? ;)
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Anonymous

unregistriert

6

19.01.2006, 20:41

Nox
Das ist die von der GDI net von Mülllib Direct3DX.

Und das Flag ist ebenfalls von der GDI. DT steht für den Funktionsnamen wo diese Funktion benutzt wird: DrawText.

Das selbe gibt es auch bei SW_HIDE für ShowWindow. Das hat mit D3DX soviel am Hut wie Nicky Lauder und Tennis.

7

19.01.2006, 21:41

ich würde den Zeichensatz aneinaderreihen, den längenmittelwert eines Zeichens bestimmen und mit der Anzahl der Satzzeicehn multiplizieren.

Anonymous

unregistriert

8

19.01.2006, 22:17

epsilon2
Aha, wieder sehr interessanter Comment von Dir, der (wie immer) totaler Bullshit ist. Denkst Du 1x nach bevor Du postest? Könnte das was Du gesagt hast auch mit logischen schriften gehen oder nur mit unlogischen Schriften? Man Du!

Das Du nur mal 5mm voraus denkst, mehr verlangt kein Mensch von Dir, aber selbst DAS scheint Dir ja zu schwer zu sein.

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

9

19.01.2006, 22:17

Wenn die Zeichen verschiedene Länge haben ist das blödsinn, weil ja nicht jede Zeichenlänge gleich oft vorkommt in einem Text.

// nix da war schneller :crying:

PD

unregistriert

10

19.01.2006, 23:00

sry, meine natürlich das Framework von david. Hab vorhin mal ein bissl gegoogelt (es wird ja ID3DXFont verwendet... leider hab ich von DX allgemein etwa soviel Ahnung wie von der Quantenphysik... was recht wenig ist ^^") aber hab leider nix gefunden was mir irgendwie hilft. Ich meine, hab das Framework mittlerweile so angepasst das es mir die exakte Mausposition gibt und auch das ich an den zuletzt gedrückten charakter komme... nun wollte ich mir selbst (in meiner Reihe von Menü-elementen) ne textbox schreiben, aber naja... dafür wäre es Hilfreich die Breite des Strings zu kennen. Was genau gibt eigentlich die Breite an die man beim erstellen des Fonts übergibt? Ich hab diese Breite benutzt für die Mouseover Abfrage von normalen menü Elementen (also string.size() * width)... nur ist das natürlich sehr ungenau. Für Menüelemente die recht groß sind und auß wenigen zeichen bestehen ist das verkraftbar, aber wenn man nen etwas längeren Text hat wirds immer ungenauer... also wenn jemand ne gescheite Lösung kennt wäre ich sehr dankbar... ansonsten werd ich mir wohl einfach was anderes ausdenken müssen ^^

Werbeanzeige