|
Mit der API-Funktion SetTextCharacterExtra
können Sie die Laufweite einer Schrift ändern und damit die
Abstände zwischen den Zeichen vergrößern oder verringern. Sie
übergeben der Funktion den Geräte-Kontext des Objekts, in dem der
Text mit der Print-Methode ausgegeben wird, und den Zeichenabstand.
Wie Sie in der animierten Illustration sehen können, sind negative
Werte allerdings nur in Grenzen sinnvoll.
Interessanterweise wirkt sich die Einstellung des
Zeichenabstandes auch auf Label-Steuerelemente aus, auf dem
betreffenden Objekt platziert sind. Damit ein Label die Änderung
des Textabstandes übernimmt, rufen Sie dessen Refresh-Methode auf.
So sieht der Code des kleinen Beispiel-Projekts aus, das in der
animierten Illustration zu sehen ist:
Private Declare Function SetTextCharacterExtra Lib "gdi32" _
(ByVal hdc As Long, ByVal nCharExtra As Long) As Long
Private mSpace As Long
Private Sub cmdMinus_Click()
mSpace = mSpace - 1
zPrint
End Sub
Private Sub cmdPlus_Click()
mSpace = mSpace + 1
zPrint
End Sub
Private Sub zPrint()
Const kText = "Ziehharmonika-Print"
lblSpace.Caption = mSpace
With Me
.Cls
.CurrentY = .ScaleHeight \ 5
SetTextCharacterExtra Me.hdc, mSpace
.CurrentX = (.ScaleWidth - .TextWidth(kText)) \ 2
lblZ.Refresh
Print kText
End With
End Sub
Private Sub Form_Paint()
zPrint
End Sub
|