CWnd::DlgDirListComboBox
コンボ ボックスのファイル リストまたはディレクトリ リストを設定します。
int DlgDirListComboBox(
LPTSTR lpPathSpec,
int nIDComboBox,
int nIDStaticPath,
UINT nFileType
);
パラメーター
lpPathSpec
パスまたはファイル名を含む null で終わる文字列へのポインター。DlgDirListComboBox は、この文字列を変更する場合、このデータは、リテラル文字列の形式にすることはできません。次の「解説」を参照してください。nIDComboBox
ダイアログ ボックスで、コンボ ボックスの識別子を指定します。nIDComboBox が 0 の場合、DlgDirListComboBox は、コンボ ボックスがなく、1 を満たすようにしないと想定されます。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 のフラグが自動的に設定されます。したがって、ドライブ、およびファイルを含むディレクトリの一覧を作成するために、DlgDirListComboBox を回呼び出す必要があります: 一度を持つ DDL_DRIVES のフラグの設定に一度リストの残りのフラグ。
DDL_EXCLUSIVE の排他ビット。排他ビットが設定されている場合、指定した型のファイルのみが一覧に; 指定した型の場合、通常のファイルとファイルの一覧が表示されます。
戻り値
関数の結果を指定します。コントロールでは、リストが作られたらゼロ以外の空のリストです。戻り値 0 は入力文字列が有効な検索パスが含まれていないことを意味します。
解説
DlgDirListComboBox は、ボックスに CB_RESETCONTENT と CB_DIR のメッセージを送信します。これは lpPathSpecで指定されたパスに一致するすべてのファイルの名前に nIDComboBox で指定されたコンボ ボックスのリスト ボックスを塗りつぶします。
lpPathSpec のパラメーターには、次の形式があります:
[drive:] [ [\u]directory[\idirectory]... \u] [filename]
この例では、drive はドライブ文字です directory は有効なディレクトリ名であり、ファイル名は 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