DlgDirListComboBoxA 函式 (winuser.h)
將下拉式方塊的內容取代為指定目錄中子目錄和檔案的名稱。 您可以藉由指定一組檔案屬性來篩選名稱清單。 名稱清單可以包含對應的驅動器號。
語法
int DlgDirListComboBoxA(
[in] HWND hDlg,
[in, out] LPSTR 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
一組位旗標,指定要新增至下拉式方塊的檔案或目錄屬性。 此參數可以是下列值的組合。
值 | 意義 |
---|---|
|
包含封存盤案。 |
|
包含子目錄,這些子目錄以方括弧括住 ([ ]) 。 |
|
所有對應的磁碟驅動器都會新增至清單。 磁碟驅動器會以 [-x-] 的形式列出,其中 x 是驅動器號。 |
|
只包含具有指定屬性的檔案。 默認會列出讀取/寫入檔案,即使未指定DDL_READWRITE也一樣。 |
|
包含隱藏的檔案。 |
|
包含唯讀檔案。 |
|
包含沒有其他屬性的讀取/寫入檔案。 這是預設值。 |
|
包含系統檔案。 |
|
如果設定此旗標, DlgDirListComboBox 會使用 PostMessage 函式將訊息傳送至下拉式方塊。 如果未設定此旗標, DlgDirListComboBox 會使用 SendMessage 函式。 |
傳回值
類型: int
如果函式成功,則傳回非零的值。
如果此函式失敗,則傳回值為零。 例如,如果 lpPathSpec 指定的字串不是有效的路徑,則函式會失敗。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
備註
如果 lpPathSpec 指定目錄, DlgDirListComboBox 會在填滿下拉式方塊之前,將當前目錄變更為指定的目錄。 nIDStaticPath 參數所識別之靜態控件的文字會設定為新目前目錄的名稱。
DlgDirListComboBox 會將 CB_RESETCONTENT 和 CB_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 窗體) 的簡短檔名。 您可以使用 SHGetFileInfo 或 GetFullPathName 函式來取得對應的長檔名。
Windows 95 或更新版本:適用於 Unicode 的 Microsoft Layer 支援 DlgDirListComboBoxW 。 若要使用此功能,您必須將特定檔案新增至您的應用程式,如 Windows Me/98/95 Systems 上的 Microsoft Layer for Unicode 中所述。
注意
winuser.h 標頭會將 DlgDirListComboBox 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | winuser.h (包含 Windows.h) |
程式庫 | User32.lib |
Dll | User32.dll |
另請參閱
參考