PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
3230 | 98/09/14 12:28:38 | RE:RE:RE:汎用的なオブジェクトを集めたらおもしろいですね By てとらぽっと |
3228 | 98/09/14 09:43:14 | RE:RE:汎用的なオブジェクトを集めたらおもしろいですね By kin |
3220 | 98/09/11 15:51:33 | RE:汎用的なオブジェクトを集めたらおもしろいですね By あすかちゃんの父 |
3219 | 98/09/11 15:53:50 | RE:汎用的なオブジェクトを集めたらおもしろいですね By あすかちゃんの父 |
3216 | 98/09/11 14:51:22 | 汎用的なオブジェクトを集めたらおもしろいですね By kin |
3208 | 98/09/11 12:39:53 | RE:RE:RE:ありがとうございました&サンプルのダウンロード By てとらぽっと |
3205 | 98/09/11 12:28:09 | RE:RE:ありがとうございました&サンプルのダウンロード By にしやん |
3200 | 98/09/10 19:30:37 | RE:ありがとうございました&サンプルのダウンロード By てとらぽっと |
3190 | 98/09/09 19:00:04 | RE:RE:RE:SHBrowseForFolderA の使い方 By kin |
3187 | 98/09/09 17:40:26 | RE:RE:SHBrowseForFolderA の使い方 By にしやん |
3183 | 98/09/09 16:33:54 | RE:SHBrowseForFolderA の使い方 By kin |
3182 | 98/09/09 11:33:39 | SHBrowseForFolderA の使い方 By にしやん |
3174 | 98/09/08 17:27:56 | RE:RE:フォルダを指定させる方法見つかりました By てとらぽっと |
3168 | 98/09/08 14:07:02 | RE:フォルダを指定させる方法見つかりました By Air Hawk |
3167 | 98/09/08 13:04:39 | フォルダを指定させる方法見つかりました By てとらぽっと |
カテゴリ:旧電子会議室
日付:1998年09月09日 11:33 発信者:にしやん
題名:SHBrowseForFolderA の使い方
こんにちは。
SHBrowseForFolderA は次のようにすれば使えます。
次のメンバを持つ構造体 BrowseInfo を作成します。
Long hWndOwner
Long pIDLRoot
Long pszDisplayName
Long lpszTitle
Long ulFlags
Long lpfnCallback
Long lParam
Long iImage
次の外部関数を定義します。
FUNCTION Long SHBrowseForFolder(REF BrowseInfo lpbi) &
LIBRARY \"SHELL32.DLL\" ALIAS FOR \"SHBrowseForFolderA\"
FUNCTION Long SHGetPathFromIDList(Long lpIDList, REF String sPath) &
LIBRARY \"SHELL32.DLL\" ALIAS FOR \"SHGetPathFromIDListA\"
SUBROUTINE CoTaskMemFree(Long hMem) &
LIBRARY \"OLE32.DLL\"
FUNCTION Long lstrcat(REF String dst, String src) &
LIBRARY \"KERNEL32.DLL\" ALIAS FOR \"lstrcatA\"
次のスクリプトで、[フォルダの参照]ダイアログを表示できます。
//定数宣言
CONSTANT Long CSIDL_DESKTOP = 0 //デスクトップがルート項目
CONSTANT Long BIF_RETURNONLYFSDIRS = 1 //フォルダ以外選択できない
//変数宣言
BrowseInfo udtBI
Long lpIDList
String PathName
String lpszTitle
//BrowseInfo 構造体情報設定
udtBI.hWndOwner = Handle(ウィンドウ) //ダイアログの親となるウィンドウ
udtBI.pIDLRoot = CSIDL_DESKTOP
lpszTitle = \"フォルダを選択してください\"
udtBI.lpszTitle = lstrcat(lpszTitle,\"\")
udtBI.ulFlags = BIF_RETURNONLYFSDIRS
//[フォルダの参照]ダイアログを開く
lpIDList = SHBrowseForFolder(udtBI)
IF lpIDList > 0 THEN
//選択したフォルダのパスを取得
PathName = Space(256)
SHGetPathFromIDList(lpIDList, PathName)
//割り当てられたメモリを開放
CoTaskMemFree(lpIDList)
MessageBox(\"\", PathName)
ELSE
MessageBox(\"\", \"キャンセル\")
END IF
コールバック関数は、初期フォルダを指定するとき必要になります。
よって、PowerBuilder では初期フォルダの指定は不可能だと思います。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows95
DBMS (記載なし)
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.