Laufweite

  • VB6

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von digimat.

    Liebe Gemeinde,
    ich bin neu hier, da ich trotz intensiver Suche keine Lösung für mein Problem finden konnte: Ich suche eine Möglichkeit, die sog. "Laufweite" in vorgegebenen Rahmen bzw. Umrahmungen ändern zu können, um Zeichenketten in diesen Rahmen korrekt zentriert in verschiedenen Schriftarten - auch Proportionalschriften - ausgeben zu können. Ich hoffe, daß es eine Lösung für dieses Problem gibt und freue mich auf Eure Hilfestellung.

    Neptun schrieb:

    Hallo digimat,
    wo gibst du denn die Texte aus? Meinst du das:
    msdn.microsoft.com/en-us/library/…8(v=VS.60).aspx
    Hallo nach KO,
    vielen Dank für den Hinweis. Aber das habe ich schon probiert, klappt leider nicht bei Prop.schriftarten. Siehst Du noch eine andere Möglichkeit? Für einen einzigen String könnte man ja was mit Spaces in unterschiedlichen Schriftgrößen frickeln, aber bei vielen verschiedenen Strings (es geht um Namen) wird das zu nervig...
    Grüße
    digimat
    Wieso kein Label mit Alignment = Center und dann eben auf die Maximalbreite ziehen? Das dürfte auch bereits bei VB6 schon funktioniert haben.

    Wenn du den Text via GDI Zeichnest ist das VB6 Äquivalent zu MeasureString() in VB.NET die Methode TextWidth(). Wobei man bei TextWidth nur einen String angeben kann, woher der weiß um welche Schriftart und -größe es sich handelt weiß ich nicht. die .NET Variante lässt sich aufjedenfall leichter handhaben.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Dodo“ ()

    Hallo digimat,
    hier ein Beispiel für die zentrierte Ausgabe eines Textes:

    Visual Basic-Quellcode

    1. Dim Txt As String
    2. Txt = "Dies ist ein Test"
    3. With Picture1
    4. .FontName = "Microsoft Sans Serif"
    5. .FontSize = 18
    6. .ScaleMode = vbPixels
    7. .AutoRedraw = True
    8. .CurrentX = (.ScaleWidth - .TextWidth(Txt)) / 2
    9. .CurrentY = (.ScaleHeight - .TextHeight(Txt)) / 2
    10. Picture1.Print Txt
    11. End With
    Gruss,

    Neptun
    @neptun: Zunächst vielen Dank, so könnte es evtl. auch mit Proportionalschriften klappen.

    @dodo: Auch Dir vielen Dank für Deinen Tipp. Leider kann ich in dem bestehenden Projekt keine Labels einfügen, da die Koordinaten der zu druckenden Umrahmungen, in denen die Strings platziert werden sollen, variabel sind und sich nach dem jeweilig gewählten Papierformat richten. Diese Rahmen wurden bisher mittels "printer.line( ) - ( ) , , b" realisiert.