共用方式為


DlgDirListComboBoxW 函式 (winuser.h)

將下拉式方塊的內容取代為指定目錄中子目錄和檔案的名稱。 您可以藉由指定一組檔案屬性來篩選名稱清單。 名稱清單可以包含對應的驅動器號。

語法

int DlgDirListComboBoxW(
  [in]      HWND   hDlg,
  [in, out] LPWSTR lpPathSpec,
  [in]      int    nIDComboBox,
  [in]      int    nIDStaticPath,
  [in]      UINT   uFiletype
);

參數

[in] hDlg

類型:HWND

包含下拉式方塊之對話框的句柄。

[in, out] lpPathSpec

類型:LPTSTR

緩衝區的指標,其中包含以 Null 結尾的字串,指定絕對路徑、相對路徑或檔名。 絕對路徑的開頭可以是驅動器號(例如 d:) 或 UNC 名稱(例如\\machinename\sharename)。

函式會將字串分割成目錄和檔名。 函式會搜尋目錄,以尋找符合檔名的名稱。 如果字串未指定目錄,函式會搜尋目前的目錄。

如果字串包含檔名,檔名必須至少包含一個通配符 (? 或 )。如果字串不包含檔名,函式的行為就如同您已將星號通配符 () 指定為檔名一樣。 指定目錄中符合檔名且具有 uFiletype 參數所指定之屬性的所有名稱,都會新增至下拉式方塊中顯示的清單。

[in] nIDComboBox

類型:int

hDlg 對話框中下拉式方塊的標識碼。 如果此參數為零,DlgDirListComboBox 不會嘗試填滿下拉式方塊。

[in] nIDStaticPath

類型:int

[hDlg] 對話框中靜態控件的標識符。 DlgDirListComboBox 設定此控件的文字以顯示目前的磁碟驅動器和目錄。 如果您不想顯示目前的磁碟驅動器和目錄,此參數可以是零。

[in] uFiletype

類型:UINT

一組位旗標,指定要加入下拉式方塊之檔案或目錄的屬性。 此參數可以是下列值的組合。

價值 意義
DDL_ARCHIVE
包含封存的檔案。
DDL_DIRECTORY
包含以方括弧 ([ ]] 括住的子目錄。
DDL_DRIVES
所有對應的磁碟驅動器都會新增至清單。 磁碟驅動器會以 [-x-] 的形式列出,其中 x 是驅動器號。
DDL_EXCLUSIVE
只包含具有指定屬性的檔案。 根據預設,即使未指定DDL_READWRITE,讀取/寫入檔案仍會列出。
DDL_HIDDEN
包含隱藏的檔案。
DDL_READONLY
包含唯讀檔案。
DDL_READWRITE
包含沒有其他屬性的讀取/寫入檔案。 這是預設設定。
DDL_SYSTEM
包含系統檔案。
DDL_POSTMSGS
如果設定此旗標,DlgDirListComboBox 會使用 PostMessage 函式將訊息傳送至下拉式方塊。 如果未設定此旗標,DlgDirListComboBox 會使用 sendMessage 函式

傳回值

類型:int

如果函式成功,則傳回值為非零值。

如果函式失敗,傳回值為零。 例如,如果 lpPathSpec 所指定的字串 不是有效的路徑,則函式會失敗。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

言論

如果 lpPathSpec 指定目錄,DlgDirListComboBox 將目前目錄變更為指定的目錄,再填入下拉式方塊。 nIDStaticPath 參數所識別的靜態控件文字會設定為新當前目錄的名稱。

DlgDirListComboBox 會將 CB_RESETCONTENTCB_DIR 訊息傳送至下拉式方塊。

Microsoft Windows NT 4.0 和更新版本:如果 uFiletype 包含 DDL_DIRECTORY 旗標,lpPathSpec 指定第一層目錄,例如 C:\TEMP,下拉式方塊一律會包含根目錄的 “..”。 即使根目錄有隱藏或系統屬性,而且未指定DDL_HIDDEN和DDL_SYSTEM旗標,也是如此。 NTFS 磁碟區的根目錄具有隱藏和系統屬性。

安全性警告:使用此函式不正確可能會危害程序的安全性。 此函式的使用不正確包括 lpPathSpec 表示不可寫入的緩衝區,或沒有 null 終止的緩衝區。 您應該先檢閱 安全性考慮:Microsoft Windows 控件 再繼續。

Microsoft Windows NT 4.0 和更新版本:如果有的話,清單會顯示長檔名。

Windows 95 或更新版本:列表會顯示簡短檔名(8.3 窗體)。 您可以使用 SHGetFileInfoGetFullPathName 函式來取得對應的長檔名。

Windows 95 或更新版本:Unicode Microsoft 層支援 DlgDirListComboBoxW。 若要使用此功能,您必須將特定檔案新增至您的應用程式,如 Windows Me/98/95 Systems上 Microsoft Layer for Unicode 中所述。

注意

winuser.h 標頭會將 DlgDirListComboBox 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
支援的最低伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平臺 窗戶
標頭 winuser.h (包括 Windows.h)
連結庫 User32.lib
DLL User32.dll

另請參閱

DlgDirList

DlgDirSelectComboBoxEx

參考