Поделиться через


Функция 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

См. также

DlgDirList

DlgDirListComboBox

DlgDirSelectComboBoxEx

LB_GETCURSEL

LB_GETTEXT

Справочник