CWnd::DlgDirListComboBox
コンボ ボックスのファイル リストまたはディレクトリ リストを設定します。
int DlgDirListComboBox(
LPTSTR lpPathSpec,
int nIDComboBox,
int nIDStaticPath,
UINT nFileType
);
パラメーター
lpPathSpec
パスまたはファイル名を表す 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 フラグが設定されている場合は、Windows は DlgDirListComboBox で生成されたメッセージをアプリケーション キューに置きます。それ以外の場合は、ダイアログ ボックスに直接送られます。
DDL_DRIVES ドライブ。 DDL_DRIVES フラグが設定されている場合は、DDL_EXCLUSIVE フラグが自動的に設定されます。 したがって、ドライブとファイルを含むディレクトリの一覧を作成するを呼び出す必要がありますDlgDirListComboBox2 回。一度、DDL_DRIVESフラグ セットと、フラグのリストの残りの部分と。
DDL_EXCLUSIVE 排他ビット。 排他ビットが設定されている場合は、指定されたタイプのファイルだけが一覧されます。それ以外の場合は、指定されたファイルと通常のファイルが一覧されます。
戻り値
関数の実行結果を返します。 リストが作成された場合は、空のリストであっても 0 以外を返します。 指定された文字列に有効な検索パスが指定されていない場合は、0 を返します。
解説
DlgDirListComboBox 関数は、コンボ ボックスに CB_RESETCONTENT メッセージおよび CB_DIR メッセージを送信します。 nIDComboBox で指定されたコンボ ボックスのリスト ボックスに、lpPathSpec で指定されたパスに一致するすべてのファイル名が格納されます。
パラメーター lpPathSpec は次の形式で指定します。
[drive:] [ [\u]directory[\idirectory]... \u] [filename]
この例では、drive はドライブを表す文字、directory は正しいフォルダー名、filename は少なくとも 1 つのワイルドカード文字を含むファイル名である必要があります。 ワイルドカードは、任意の文字に一致する疑問符 (?) と任意の数の文字に一致するアスタリスク (*) が使えます。
lpPathSpec に長さが 0 の文字列を指定した場合、現在のフォルダーが使用され、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.
必要条件
**ヘッダー:**afxwin.h