SHBrowseForFolder

WINSHELLAPI LPITEMIDLIST WINAPI SHBrowseForFolder( LPBROWSEINFO lpbi);

基本介紹

  • 中文名:SHBrowseForFolder
  • int iImage:保存被選取的資料夾的圖片索引
  • UINT ulFlags:指定對話框的外觀和功能的標誌
  • 視窗句柄:HWND hwndOwner;
基本信息,定義,結構,成員變數,調用例子,函式在VB6中使用時,

基本信息

定義

結構

BROWSEINFO的結構如下:
typedef struct _browseinfo {
HWND hwndOwner; // 父視窗句柄
LPCITEMIDLIST pidlRoot; // 要顯示的資料夾的根(Root)
LPTSTR pszDisplayName; // 保存被選取的資料夾路徑的緩衝區
LPCTSTR lpszTitle; // 顯示位於對話框左上部的標題
UINT ulFlags; // 指定對話框的外觀和功能的標誌
BFFCALLBACK lpfn; // 處理事件的回調函式
LPARAM lParam; // 應用程式傳給回調函式的參數
int iImage; // 保存被選取的資料夾的圖片索引
} BROWSEINFO, *PBROWSEINFO, *LPBROWSEINFO

成員變數

hwndOwner:瀏覽資料夾對話框的父窗體句柄。
pidlRoot:ITEMIDLIST結構的地址,包含瀏覽時的初始根目錄,而且只有被指定的目錄和其子目錄才顯示在瀏覽資料夾對話框中。該成員變數可以是NULL,在此時桌面目錄將被使用。
pszDisplayName:用來保存用戶選中的目錄字元串的記憶體地址。該緩衝區的大小預設是定義的MAX_PATH常量宏。
lpszTitle:該瀏覽資料夾對話框對話框的顯示文本,用來提示該瀏覽資料夾對話框的功能、作用和目的。
ulFlags:該標誌位描述了對話框的選項。它可以為0,也可以是以下常量的任意組合:
BIF_BROWSEFORCOMPUTER:返回計算機名。除非用戶選中瀏覽器中的一個計算機名,否則該對話框中的“OK”按鈕為灰色。
BIF_BROWSEFORPRINTER:返回印表機名。除非選中一個印表機名,否則“OK”按鈕為灰色。
BIF_BROWSEINCLUDEFILES:瀏覽器將顯示目錄,同時也顯示檔案。
BIF_DONTGOBELOWDOMAIN:在樹形視窗中,不包含域名底下的網路目錄結構。
BIF_EDITBOX:瀏覽對話框中包含一個編輯框,在該編輯框中用戶可以輸入選中項的名字。
BIF_RETURNFSANCESTORS:返回檔案系統的一個節點。僅僅當選中的是有意義的節點時,“OK”按鈕才可以使用。
BIF_RETURNONLYFSDIRS:僅僅返回檔案系統的目錄。例如:在瀏覽資料夾對話框中,當選中任意一個目錄時,該“OK”按鈕可用,而當選中“我的電腦”或“網上鄰居”等非有意義的節點時,“OK”按鈕為灰色。
BIF_STATUSTEXT:在對話框中包含一個狀態區域。通過給對話框傳送訊息使回調函式設定狀態文本。
BIF_VALIDATE:當沒有BIF_EDITBOX標誌位時,該標誌位被忽略。如果用戶在編輯框中輸入的名字非法,瀏覽對話框將傳送BFFM_VALIDATEFAILED訊息給回調函式。
lpfn:應用程式定義的瀏覽對話框回調函式的地址。當對話框中的事件發生時,該對話框將調用回調函式。該參數可用為NULL。
lParam:對話框傳遞給回調函式的一個參數指針
iImage:與選中目錄相關的圖像。該圖像將被指定為系統圖像列表中的索引值。

調用例子

wchar_t Buffer[MAX_PATH];
BOOL hanGetPath()
{
BROWSEINFO bi;
LPITEMIDLIST pIDList;
//初始化入口參數bi開始
bi.hwndOwner = ::hWnd;
bi.pidlRoot = NULL;
bi.pszDisplayName = ::Buffer;//此參數如為NULL則不能顯示對話框
bi.lpszTitle = L"設定檔案查找路徑";
bi.ulFlags = BIF_RETURNONLYFSDIRS;
bi.lpfn = NULL;
bi.iImage = IDI_ICON_MAIN;
bi.lParam = 0;
pIDList = SHBrowseForFolder(&bi);//調用顯示選擇對話框
if(pIDList)
{
SHGetPathFromIDList(pIDList, ::Buffer);
return TRUE;
}
return FALSE;
}

函式在VB6中使用時

聲明(declare):
Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long

相關詞條

熱門詞條

聯絡我們