CWnd::DlgDirList
リスト ボックスにファイル リストまたはディレクトリ リストを設定します。
int DlgDirList(
LPTSTR lpPathSpec,
int nIDListBox,
int nIDStaticPath,
UINT nFileType
);
パラメーター
lpPathSpec
パスまたはファイル名を表す null で終わる文字列へのポインター。 DlgDirList ではこの文字列を変更するので、変更結果を格納するために十分な長さを持つ必要があります。 詳細については、次の「解説」を参照してください。nIDListBox
リスト ボックスの識別子を指定します。 nIDListBox が 0 のときは、DlgDirList はリスト ボックスが存在しないと判断し、データの転送は行いません。nIDStaticPath
現在のドライブとフォルダーの表示のために使われるスタティック テキスト コントロールの識別子を指定します。 nIDStaticPath が 0 のとき、DlgDirList 関数はそのようなテキスト コントロールはないものと仮定します。nFileType
表示されるファイルの属性を指定します。 次の値を任意に組み合わせて使用できます。DDL_READWRITE ほかの属性を持たない読み書き可能なデータ ファイル。
DDL_READONLY 読み取り専用ファイル。
DDL_HIDDEN 隠しファイル。
DDL_SYSTEM システム ファイル。
DDL_DIRECTORY ディレクトリ。
DDL_ARCHIVE アーカイブ。
DDL_POSTMSGS LB_DIR フラグ。 LB_DIR フラグが設定されている場合、Windows は DlgDirList で生成されたメッセージをアプリケーション キューに置きます。それ以外の場合は、ダイアログ ボックスに直接送られます。
DDL_DRIVES ドライブ。 DDL_DRIVES フラグが設定されている場合は、DDL_EXCLUSIVE フラグが自動的に設定されます。 したがって、ドライブとファイルを含むディレクトリの一覧を作成するを呼び出す必要がありますDlgDirList2 回。一度、DDL_DRIVESフラグ セットと、フラグのリストの残りの部分と。
DDL_EXCLUSIVE 排他ビット。 排他ビットが設定されている場合は、指定されたタイプのファイルだけが一覧されます。それ以外の場合は、指定されたファイルと通常のファイルが一覧されます。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
DlgDirList 関数は、リスト ボックスに LB_RESETCONTENT メッセージおよび LB_DIR メッセージを送信します。 nIDListBox で指定されたリスト ボックスに、lpPathSpec で指定されたパスに一致するすべてのファイル名が格納されます。
パラメーター lpPathSpec は次の形式で指定します。
[drive:] [ [\u]directory[\idirectory]... \u] [filename]
この例では、drive はドライブを表す文字、directory は正しいフォルダー名、filename は少なくとも 1 つのワイルドカード文字を含むファイル名である必要があります。 ワイルドカードは、任意の文字に一致する疑問符 (?) と任意の数の文字に一致するアスタリスク (*) が使えます。
lpPathSpec に長さが 0 の文字列を指定したとき、またはファイル指定を含まないフォルダー名のみを指定したときは、文字列は "*.*" に変換されます。
lpPathSpec にドライブ名かフォルダー名、またはその両方が含まれている場合、リスト ボックスに格納される前に現在のドライブとフォルダーが指定されたドライブとフォルダーに変更されます。 nIDStaticPath で指定されたテキスト コントロールも新しいドライブやフォルダーに変更されます。
リスト ボックスに格納された後、lpPathSpec は、パス名のドライブやフォルダーの部分を取り除いたものに変更されます。
使用例
// If pDialog points to a CDialog object with a list box
// with the identifier IDC_DIRLIST, this call will populate
// the box with only the non-hidden subdirectories in the root
// directory of the C:\ drive.
TCHAR path[MAX_PATH];
_tcscpy_s(path, MAX_PATH, _T("C:\\"));
pDialog->DlgDirList(path, IDC_DIRLIST, 0, DDL_EXCLUSIVE | DDL_DIRECTORY);
必要条件
**ヘッダー:**afxwin.h