Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


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

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.

 

 

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