Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: VB7
Expertise: Intermediate
Apr 14, 2003



Building the Right Environment to Support AI, Machine Learning and Deep Learning

CompactPathToControl - Shorten a path by using ellipses

<System.Runtime.InteropServices.DllImport("user32")> Shared Function _
    GetWindowDC(ByVal hWnd As Integer) As Integer
End Function

<System.Runtime.InteropServices.DllImport("shlwapi.dll")> Shared Function _
    PathCompactPath(ByVal hDC As Integer, _
    ByVal pathBuffer As System.Text.StringBuilder, _
    ByVal dx As Integer) As Boolean
End Function

' Shorten a path by using ellipses, if necessary, so that it fits inside a 
' window
' If maxWidth=-1 or omitted, it uses the entire window's width
' Example:
'   Dim longPath As String = "D:\VB2TheMax\Examples\Routines\File1.vb"
'   Label1.Text = CompactPathToControl(longPath, Label1)

Function CompactPathToControl(ByVal longPath As String, ByVal ctl As Control, _
    Optional ByVal maxWidth As Long = -1) As String
    ' if 3rd argument is omitted, use the control's width
    If maxWidth < 0 Then maxWidth = ctl.Width
    ' compact the path
    Dim compPath As New System.Text.StringBuilder(longPath)
    PathCompactPath(GetWindowDC(ctl.Handle.ToInt32()), compPath, maxWidth)
    ' get the path by extracting it from the returned buffer
    Return compPath.ToString()
End Function
Marco Bellinaso
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date