共用方式為


CWnd::DlgDirListComboBox

在檔案或目錄清單填入下拉式方塊的清單方塊。

int DlgDirListComboBox(
   LPTSTR lpPathSpec,
   int nIDComboBox,
   int nIDStaticPath,
   UINT nFileType 
);

參數

  • lpPathSpec
    out 包含此路徑或檔名的 NULL 結尾字串的點。 DlgDirListComboBox 修改這個字串,以常值的形式,因此,這項資料不應為。 請參閱下列的<備註>一節。

  • nIDComboBox
    在 對話方塊中指定下拉式方塊的識別項。 如果 nIDComboBox 為 0, DlgDirListComboBox 假設,下拉式方塊不存在並不會嘗試填滿。

  • nIDStaticPath
    指定用於靜態文字控制項的識別項會顯示目前的磁碟機和目錄。 如果 nIDStaticPath 為 0, DlgDirListComboBox 假設,這類文字控制項不存在。

  • nFileType
    指定 DOS 要顯示的檔案的檔案屬性。 可能是下列值的任何組合:

    • 沒有其他屬性的DDL_READWRITE 讀寫資料檔案。

    • DDL_READONLY 唯讀檔案。

    • DDL_HIDDEN 隱藏檔案。

    • DDL_SYSTEM 系統檔案。

    • DDL_DIRECTORY 目錄。

    • DDL_ARCHIVE 檔案。

    • DDL_POSTMSGS   CB_DIR 旗標。 如果 CB_DIR 旗標設定為,則視窗在應用程式的佇列中的 DlgDirListComboBox 產生的訊息;否則,它們會直接傳送至對話方塊的程序。

    • DDL_DRIVES 磁碟機。 如果 DDL_DRIVES 旗標設為, DDL_EXCLUSIVE 旗標自動設定。 因此,建立包含磁碟機和檔案的目錄清單,您必須呼叫兩次 DlgDirListComboBox :一次。 DDL_DRIVES 旗標集合一次包含清單的其餘部分的旗標。

    • DDL_EXCLUSIVE 獨佔位元。 如果獨佔位元設定為,在中,只有指定型別的檔案清單,則為指定之型別的一般檔案和檔案清單。

傳回值

指定函式的結果。 它不是零,如果目錄中進行,甚至空的目錄。 傳回 0 的值表示輸入字串未包含有效的搜尋路徑。

備註

DlgDirListComboBox 傳送 CB_RESETCONTENTCB_DIR 資訊加入至下拉式方塊。 它會比對 lpPathSpec指定的路徑中所有檔案的名稱 nIDComboBox 填滿指定的下拉式方塊的清單方塊。

lpPathSpec 參數的形式如下:

[drive:] [ [\u]directory[\idirectory]... \u] [filename]

在此範例中, drive 是磁碟機代號, directory 是有效的目錄名稱,然後, 檔名 為至少必須包含一個萬用字元的有效的檔名。 萬用字元為問號 (?),就會比對任何字元和星號 (),表示*****符合任何數目的字元。

如果您為 lpPathSpec指定長度為零的字串,會使用目前的目錄,並不會修改 lpPathSpec 。 如果只指定目錄名稱,但不包含任何檔案規格,該字串就會變更為「*」。

如果 lpPathSpec 包含磁碟機和目錄名稱,目前磁碟機和目錄變更為指定的磁碟機和目錄,在清單方塊中填入之前。 nIDStaticPath 判斷的文字控制項也會更新為新的磁碟機和目錄名稱。

在 下拉式方塊中選取清單方塊中填入後, lpPathSpec 藉由移除路徑的磁碟機和目錄部分更新。

範例

// If pDialog points to a CDialog object with a combo box
// with the identifier IDC_DIRCOMBO, this call will populate
// the box with only the non-hidden subdirectories in the root
// directory of the C:\ drive. 

TCHAR szPath[MAX_PATH];
_tcsncpy_s(szPath, MAX_PATH, _T("C:\\"), MAX_PATH);
pDialog->DlgDirListComboBox(szPath, IDC_DIRCOMBO, 0, DDL_EXCLUSIVE | 
   DDL_DIRECTORY);

// Note that the first argument is a string and not a string 
// literal. This is necessary because DlgDirListComboBox 
// modifies the supplied string. Passing a string literal 
// will result in an access violation.   

需求

Header: afxwin.h

請參閱

參考

CWnd 類別

階層架構圖

CWnd::DlgDirList

CWnd::DlgDirSelect

DlgDirListComboBox