Login | Register   
RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.

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