Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C++CLI / VB .Net / .Net-Framework » Breite und Höhe eines Zeichens

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
17.02.2006, 15:06 Uhr
Lensflare



Hallo

ich hab ein Font, von dem ich weiß, dass alle Zeichen gleich breit sind.
Die Höhe eines Zeichens bekommt man mit
Font.Height;

aber wie man die Breite bekommt weiß ich nicht.
Ich denke die Breite kann man deswegen nicht direkt rauslesen, weil ja normalerweise die Zeichen eines Fonts unterschiedlich breit sind.
Aber da ich weiss, dass mein Font nur gleich-breite Zeichen hat, würde es auch ausreichen von einem beliebigen Zeichen die Breite zu bekommen.

Kennt jemand eine Möglichkeit?
--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.02.2006, 15:53 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
Schau dir mal die MeasureString() Methode von Graphics an.
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
17.02.2006, 16:56 Uhr
Lensflare



hab folgendes probiert aber ich brauche eine Graphics Instanz, von der ich MeasureString() aufrufen kann.


C++:
fontW = Graphics.MeasureString("X",fontDialog1.Font).Width;


also habe ich eine Graphics instanz erzeugt


C++:
Graphics g = Graphics.FromHwnd(this.Handle); //this.Handle ist das Handle vom Hauptfenster


dann hab ich die MeasureString() von g aufgerufen


C++:
fontW = g.MeasureString("X",fontDialog1.Font).Width;


das geht zwar, aber ich bekomme einen falschen wert, der um ca 1,5 höher ist, als er sein sollte.
--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)

Dieser Post wurde am 17.02.2006 um 16:57 Uhr von Lensflare editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
17.02.2006, 19:02 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
bist du Dir sicher das alle Zeichen die gleich Breite haben?
z.B. bringen

C++:
double XWidth = g.MeasureString("X", fontDialog1.Font).Width;
double GWidth = g.MeasureString("G", fontDialog1.Font).Width;


unterschiedliche Werte.
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
17.02.2006, 21:55 Uhr
Lensflare



das Hängt natürlich von dem Font ab. Ich habe "Courier New" verwendet.

Ich glaube, dass es an meiner Graphics Instanz liegt. Denn es scheint so, als ob die Proportion nicht stimmt. Egal welche textgröße ich einstelle, der wert für die Breite ist immer ca 1,5-fach so groß wie er sein sollte.
--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
17.02.2006, 22:28 Uhr
Lensflare



ist mir jetzt egal...

ich teile das ergebnis einfach durch die konstante 1,58
ich habe es mit unterschiedlichen Fonts und Größen ausprobiert.
Es haut überall hin.

Danke für die Tipps.
--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
13.03.2006, 11:43 Uhr
Marco Griep



Die breite bekommt man mit "width"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C++CLI / VB .Net / .Net-Framework ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: