Dateiname darstellen

gehrti

Mitglied
Hallo!

Ich möchte einen Dateinamen im Dialog darstellen. Das ganze soll bei Bedarf mehrzeilig geschehen. Mein Problem ist, dass das Textelement, mit dem ich den Name darstelle, nur umbricht, wenn im Dateiname ein Leerzeichen enthalten ist.

Hat jemand ne Idee für mich wie ich das ändern kann, oder wie ich es anders machen könnte?

MfG. Thomas
 
Zeilenumbruch im CEdit mit "\r\n" + Control muss die Eigenschaft "Mehrzeilig" (multiline) haben.

M.f.G: Erik
 
Die Eigenschaft mehrzeilig gibt es nicht, sondern nur "kein umbruch" (die natürlich aus ist), was ja äquivalent ist.

Er bricht um, aber erst, wenn ein Leerzeichen kommt. Wenn ich keine Leerzeichen im String habe bricht er nicht um ...

MfG. Thomas
 
Schau doch einfach wie viele Zeichen in dein Textfeld passen, z.B 12 und füge dann nach 12 Zeichen ein Leerzeichen in deinen String ein.
 
Gut Idee, aber geht nicht so einfach, da zum Beispiel "W" viel mehr Platz einnimmt als "\".

Mfg. Thomas

PS.: Hab mir überlegt eine Listbox mit nur einem Element zu nehmen, aber es muss doch auch einfacher gehen, oder?
 
Mit Sicherheit gibt es da eine andere Lösung, aber ich kenne es nur so das man ein Leerzeichen einfügt, wenn der Platz verbraucht ist. Wenn ich das jetzt so richtig sehe ist ein W das breiteste Zeichen. Dann schau wieviele W´s in dein Textfeld passen und füge dann ein Leerzeichen ein. Damit biste auf der sicheren Seite.
 
1. Man kann sich die länge des Textes errechnen lassen und mit der Breite des Ctrl's feststellen wann ein Umbruch kommen muss.
2. Ist das total doof und oberlame.

Was hast du ?! Ein CEdit oder ein CStatic ? (wenn kein "multiline" da ist wirds wohl ein Static sein)

Wieso klappt das nicht wenn du in deinen Text einfach '\n' ode "\r\n" einfügst ?!
Bei einem Static muss dann dafür "Word ellipsis" auf False (alles was ein Wort enhält was wie "ellipsis" auschaut muss aus sein *gerade ausprobiert hat*) sein. Einfach mal ein bischen mit den ganzen Eigenschaften rumbasteln ...

M.f.G. Erik

PS.: Ach ja - unmögliches zuerst : Ich hoffe dein Steuerelement ist auch gross genug für mehrzeiligen Text (also dass man das dann auch sieht)
Und was die scheinbare Equivalenz von Begriffen angeht, so währe ich in der Deutschen Version äusserst misstrauisch - da die da eigentlich nur mist gebaut haben.

[vergiss den ganzen Text, ich hab dein Problem verstanden ^_______^°]

Vielleicht hilft dir dann diese Funktion weiter : "
GetTextExtentPoint32()"
Laut MSDN macht die Folgendes:

The GetTextExtentPoint32 function uses the currently selected font to compute the dimensions of the string. The width and height, in logical units, are computed without considering any clipping.
 
Zuletzt bearbeitet:
Ja, habe CStatic.

Die Funktion "GetTextExtentPoint32()" klingt interessant, weiß nur nichts mit dem ersten Parameter anzufangen ...

Code:
BOOL GetTextExtentPoint32(
  HDC hdc,           // handle to device context
  LPCTSTR lpString,  // pointer to text string
  int cbString,      // number of characters in string
  LPSIZE lpSize      // pointer to structure for string size
);

MfG. Thomas
 
Zurück