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


Функция 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 for Юникод в системах Windows Me/98/95.

Примеры

Пример см. в разделе Создание списка каталогов в списке с одним выбором.

Примечание

Заголовок winuser.h определяет DlgDirSelectEx в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header winuser.h (включая Windows.h)
Библиотека User32.lib
DLL User32.dll

См. также раздел

DlgDirList

DlgDirListComboBox

DlgDirSelectComboBoxEx

LB_GETCURSEL

LB_GETTEXT

Справочные материалы