Atlanta Custom Software Development 

   Search        Code/Page

User Login



Forgot the Password?
» Web Development
» Maintenance
» Data Integration/BI
» Information Management
» Regular Expr Tester
» Free Tools

CompactPathToWindow - Shorten a path so that it fits a window's width

Total Hit ( 2216)

Rate this article:     Poor     Excellent 

 Submit Your Question/Comment about this article



Click here to copy the following block
Private Type RECT
  Left As Long
  Top As Long
  Right As Long
  Bottom As Long
End Type
Private Declare Function IsWindow Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function GetClientRect Lib "user32" (ByVal hWnd As Long, _
  lpRect As RECT) As Long
Private Declare Function GetWindowDC Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function PathCompactPath Lib "shlwapi.dll" Alias _
  "PathCompactPathA" (ByVal hDC As Long, ByVal lpszPath As String, _
  ByVal dx As Long) As Boolean

' 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

Function CompactPathToWindow(ByVal sPath As String, ByVal hWnd As Long, _
  Optional ByVal maxWidth As Long = -1) As String
  Dim rc As RECT
  ' Illegal function call if hWnd isn't a valid window handle
  If IsWindow(hWnd) = 0 Then Err.Raise 5
  ' if 3rd argument is omitted, use windows' width
  If maxWidth < 0 Then
    'get the rect of the target window
    GetClientRect hWnd, rc
    maxWidth = rc.Right - rc.Left
  End If
  ' compact the path
  PathCompactPath GetWindowDC(hWnd), sPath, maxWidth
  ' get the path by extracting it from the returned buffer
  CompactPathToWindow = Left$(sPath, InStr(sPath & vbNullChar, _
    vbNullChar) - 1)  
End Function

Submitted By : Nayan Patel  (Member Since : 5/26/2004 12:23:06 PM)

Job Description : He is the moderator of this site and currently working as an independent consultant. He works with, SQL Server and other MS technologies. He is, MCDBA and MCSE. In his free time he likes to watch funny movies and doing oil painting.
View all (893) submissions by this author  (Birth Date : 7/14/1981 )

Home   |  Comment   |  Contact Us   |  Privacy Policy   |  Terms & Conditions   |  BlogsZappySys

© 2008 BinaryWorld LLC. All rights reserved.