短縮形式のパスを取得 <TOP>
PathCompactPath 短縮形式のパスを取得
GetDC
デバイスコンテキストのハンドルを取得
ReleaseDC
デバイスコンテキストを解放
テキストボックスの長さ(例では216ドット)に合わせて短縮しています。
参照
'================================================================ '= 短縮形式のパスを取得 '= (PathCompactPath.bas) '================================================================ #include "Windows.bi" ' 短縮形式のパスを取得 Declare Function Api_PathCompactPath& Lib "shlwapi" Alias "PathCompactPathA" (ByVal hDC&, ByVal lpszPath$, ByVal dx&) ' 指定されたウィンドウのクライアント領域または画面全体を表すディスプレイデバイスコンテキストのハンドルを取得 Declare Function Api_GetDC& Lib "user32" Alias "GetDC" (ByVal hWnd&) ' デバイスコンテキストを解放 Declare Function Api_ReleaseDC& Lib "user32" Alias "ReleaseDC" (ByVal hWnd&, ByVal hDC&) Var Shared Edit1 As Object Var Shared Text1 As Object Var Shared Button1 As Object Edit1.Attach GetDlgItem("Edit1") : Edit1.SetFontSize 12 Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 14 Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14 '================================================================ '= '================================================================ Declare Sub MainForm_Start edecl () Sub MainForm_Start() Edit1.SetWindowText "C:\MyFolder\FBasic\MyReallyWayTooLongFolderName\ButWhoCares\IhaveTheAPI.doc" End Sub '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Var hDC As Long Var CtlWidth As Long Var FileName As String FileName = Edit1.GetWindowtext Text1.SetWindowSize 216, 24 CtlWidth = Text1.GetWidth hDC = Api_GetDC(Text1.GethWnd) Ret = Api_PathCompactPath(hDC, FileName, CtlWidth ) Text1.SetWindowText FileName Ret = Api_ReleaseDC(hDC, Text1.GethWnd) End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End