Atlanta Custom Software Development 

 
   Search        Code/Page
 

User Login
Email

Password

 

Forgot the Password?
Services
» Web Development
» Maintenance
» Data Integration/BI
» Information Management
Programming
  Database
Automation
OS/Networking
Graphics
Links
Tools
» Regular Expr Tester
» Free Tools

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

Total Hit ( 3504)

Rate this article:     Poor     Excellent 

 Submit Your Question/Comment about this article

Rating


 



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 VB.net/ASP.net, SQL Server and other MS technologies. He is MCSD.net, 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.