Функция DlgDirSelectExA (winuser.h)
Извлекает текущий выбор из списка с одним выделением. Предполагается, что поле списка заполнено функцией DlgDirList, а выбор — буквой диска, именем файла или именем каталога.
Синтаксис
BOOL DlgDirSelectExA(
[in] HWND hwndDlg,
[out] LPSTR lpString,
[in] int chCount,
[in] int idListBox
);
Параметры
[in] hwndDlg
Тип: HWND
Дескриптор диалогового окна, содержащего поле списка.
[out] lpString
Тип: LPTSTR
Указатель на буфер, получающий выбранный путь.
[in] chCount
Тип: int
Длина TCHARsбуфера, на который указывает lpString.
[in] idListBox
Тип: int
Идентификатор поля списка в диалоговом окне.
Возвращаемое значение
Тип: BOOL
Если текущий выбор является именем каталога, возвращаемое значение ненулевое.
Если текущий выбор не является именем каталога, возвращаемое значение равно нулю. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.
Замечания
Функция DlgDirSelectEx копирует выделение в буфер, на который указывает параметр lpString. Если текущий выбор является именем каталога или буквой диска, DlgDirSelectEx удаляет вложенные квадратные скобки (и дефисы для букв диска), чтобы имя или буква были готовы вставить в новый путь. Если нет выбора, lpString не изменяется.
Если строка длинна или длиннее буфера, буфер будет содержать усеченную строку с завершающим символом NULL.
DlgDirSelectEx отправляет LB_GETCURSEL и LB_GETTEXT сообщения в поле списка. Функция не позволяет возвращать несколько имен файлов из поля списка. Поле списка не должно быть списком с несколькими выборами. Если это так, эта функция не возвращает нулевое значение и lpString остается неизменным.
Windows 95 или более поздней версии: DlgDirSelectExW поддерживается Microsoft Layer для Юникода. Чтобы использовать это, необходимо добавить в приложение определенные файлы, как описано в Microsoft Layer для Юникода в Windows Me/98/95 Systems.
Примеры
Пример см. в разделе Создание списка каталогов всписка с одним выбором.
Заметка
Заголовок winuser.h определяет DlgDirSelectEx как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows Vista [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2003 [только классические приложения] |
целевая платформа | Виндоус |
заголовка | winuser.h (включая Windows.h) |
библиотеки |
User32.lib |
DLL | User32.dll |
См. также
Справочник