パス名を指定のピクセル幅の中に収まる長さにするには

パス名を指定のピクセル幅の中に収まる長さにしてみます。
キーワードは「PathCompactPath()関数」です。
PathCompactPath()関数は指定のパス名を、指定した長さのピクセル幅に収まるように短縮してくれます。
自分で描画しているようなときに、パス名が長すぎてはみ出るなどということがないので便利です。

実行時の様子
'パス名をピクセル単位で指定した長さの短縮形にする
Private Declare Function PathCompactPath Lib "shlwapi.dll" Alias "PathCompactPathA" _
    (ByVal hdc As Long, ByVal lpszPath As String, ByVal dx As Long) As Long

Private Sub Command1_Click() Dim temp As String, nWidth As Long temp = Me.Text1.Text & String(256, Chr(0)) nWidth = Me.Picture1.ScaleWidth - 100 '長さ指定 Me.Picture1.Line (0, 0)-(nWidth, Me.Picture1.ScaleHeight), vbBlue, BF Me.Picture1.CurrentX = 0 Me.Picture1.CurrentY = 0 Me.Picture1.ForeColor = vbWhite Me.Picture1.Print "指定した長さ:" & nWidth & "px" Call PathCompactPath(Me.Picture1.hdc, temp, nWidth) Me.Text2.Text = temp '結果表示 End Sub
Private Sub Form_Load() Me.Picture1.ScaleMode = 3 Me.Text1.Text = App.Path End Sub
ダウンロード