現在フォルダ参照ダイアログを導入しているのですが、初期フォルダの指定方法がわかりません。
インターネットで調べたところ、方法はあるということは理解できたのですが、どうすればできるかがわかりません。
現在のソースを大きく修正しなくて済む方法はないかと調べていましたがわかりません。
アドバイス、または参考サイトなど教えていただきたいです。
どうかよろしくお願いいたします。
ソースですが、
vb6
1'/* FolderBrowserDialog クラス モジュール */ 2Option Explicit 3 4 5' SHBrowseForFolder 関数 6Private Declare Function SHBrowseForFolder Lib "SHELL32.DLL" Alias "SHBrowseForFolderA" ( _ 7 ByRef lpBrowseInfo As TypeBrowseInfo _ 8) As Long 9 10 11' SHGetPathFromIDList 関数 12Private Declare Function SHGetPathFromIDList Lib "SHELL32.DLL" Alias "SHGetPathFromIDListA" ( _ 13 ByVal pidl As Long, _ 14 ByVal pszPath As String _ 15) As Long 16 17 18' CoTaskMemFree 関数 19Private Declare Sub CoTaskMemFree Lib "OLE32.DLL" (ByVal pv As Long) 20 21 22' BrowseInfo 構造体 23Private Type TypeBrowseInfo 24 OwnerHandle As Long 25 Root As Long 26 DisplayName As String 27 Description As String 28 Flags As BifOptions 29 lpfn As Long 30 lParam As String 31 iImage As Long 32End Type 33 34 35' FolderBrowseDialog 設定用の列挙体 36Private Enum BifOptions 37 ReturnOnlyFileSystemDirectories = &H1 ' コントロールパネル・プリンタ・ブリーフケース内は選択不可 38 HideNetworkResource = &H2 ' ネットワーク内のリソースを非表示 39 StatusText = &H4 ' テキスト文字列を表示 (設定は Callback 関数で行う) 40 OnlyNetworkResource = &H8 ' ネットワーク内のリソースのみ選択可能 41 ShowEditBox = &H10 ' フォルダ名を編集する TextBox を表示 42 Validate = &H20 ' 検証を実行する 43 NewDialogStyle = &H40 ' 新しいフォルダの作成を表示 (Winodws 2000 以降から有効) 44 BrowseForComputer = &H1000 ' ネットワークコンピュータ内のリソースのみ選択可 45 BrowseForPrinter = &H2000 ' ネットワークプリンタのみ選択可 46 BrowseIncludeFiles = &H4000 ' フォルダ内のファイル名も表示 (Windows 98 以降) 47End Enum 48 49 50' プロパティ 変数 51Private m_SelectedPath As String 52Private BrowseInfo As TypeBrowseInfo 53 54 55' SelectedPath - Get 56Public Property Get SelectedPath() As String 57 SelectedPath = m_SelectedPath 58End Property 59 60 61' SelectedPath - Let 62Public Property Let SelectedPath(ByVal value As String) 63 m_SelectedPath = value 64End Property 65 66 67' Description - Get 68Public Property Get Description() As String 69 Description = BrowseInfo.Description 70End Property 71 72 73' Description - Let 74Public Property Let Description(ByVal value As String) 75 BrowseInfo.Description = value 76End Property 77 78 79' ShowNewFolderButton - Get 80Public Property Get ShowNewFolderButton() As Boolean 81 ShowNewFolderButton = ((BrowseInfo.Flags And NewDialogStyle) > 0) 82End Property 83 84 85' ShowNewFolderButton - Let 86Public Property Let ShowNewFolderButton(ByVal value As Boolean) 87 If value Then 88 BrowseInfo.Flags = BrowseInfo.Flags Or NewDialogStyle 89 Else 90 BrowseInfo.Flags = BrowseInfo.Flags And Not NewDialogStyle 91 End If 92End Property 93 94 95' コンストラクタ 96Private Sub Class_Initialize() 97 BrowseInfo.Flags = BrowseInfo.Flags Or NewDialogStyle 98End Sub 99 100 101'「フォルダの参照」ダイアログを表示する 102Public Function ShowDialog(Optional ByVal hOwnerHandle As Long = 0&) As Boolean 103 Dim lReturn As Long 104 105 ' 親ハンドルを設定する 106 BrowseInfo.OwnerHandle = hOwnerHandle 107 108 '「フォルダの参照」ダイアログを呼び出す 109 lReturn = SHBrowseForFolder(BrowseInfo) 110 111 ' OK が押下された場合 112 If lReturn <> 0 Then 113 Dim stPath As String 114 115 stPath = String$(65536, vbNullChar) 116 117 Call SHGetPathFromIDList(lReturn, stPath) 118 Call CoTaskMemFree(lReturn) 119 120 Me.SelectedPath = Left$(stPath, InStr(stPath, vbNullChar) - 1) 121 ShowDialog = True 122 End If 123End Function 124
呼び出し部が
vb6
1 ' FolderBrowserDialog クラスの新しいインスタンスを生成する 2 Dim cFolderBrowserDialog As FolderBrowserDialog 3 Set cFolderBrowserDialog = New FolderBrowserDialog 4 5 ' ダイアログの説明を設定する 6 cFolderBrowserDialog.Description = "ここに説明を書いてください" 7 8 ' [新しいフォルダ] ボタンを表示する (初期値 True) 9 'cFolderBrowserDialog.ShowNewFolderButton = True 10 11 ' ダイアログを表示し、戻り値が [OK] の場合は、選択したディレクトリを表示する 12 If cFolderBrowserDialog.ShowDialog(Me.hWnd) Then 13 Call MsgBox(cFolderBrowserDialog.SelectedPath) 14 End If 15 16 ' 不要になった時点で参照を解放する (Terminate イベントを早めに起こす) 17 Set cFolderBrowserDialog = Nothing
となっています。
環境
WindowsXP Professional
VB6.0(SP6)

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/08 07:35
2017/02/08 07:36
2017/02/08 07:38
2017/02/08 08:11
2017/02/08 08:14