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


Функция DlgDirSelectComboBoxExA (winuser.h)

Извлекает текущий выделенный фрагмент из поля со списком, заполненного с помощью функции DlgDirListComboBox . Выбор интерпретируется как буква диска, файл или имя каталога.

Синтаксис

BOOL DlgDirSelectComboBoxExA(
  [in]  HWND  hwndDlg,
  [out] LPSTR lpString,
  [in]  int   cchOut,
  [in]  int   idComboBox
);

Параметры

[in] hwndDlg

Тип: HWND

Дескриптор диалогового окна, содержащего поле со списком.

[out] lpString

Тип: LPTSTR

Указатель на буфер, получающий выбранный путь.

[in] cchOut

Тип: int

Длина (в символах) буфера, на который указывает параметр lpString .

[in] idComboBox

Тип: int

Целочисленный идентификатор элемента управления "Поле со списком" в диалоговом окне.

Возвращаемое значение

Тип: BOOL

Если текущим выбором является имя каталога, возвращаемое значение не равно нулю.

Если текущий выбор не является именем каталога, возвращаемое значение равно нулю. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

Если текущий выбор указывает имя каталога или букву диска, функция DlgDirSelectComboBoxEx удаляет вложенные квадратные скобки (и дефисы для букв диска), чтобы имя или буква были готовы к вставке в новый путь или имя файла. Если выбор отсутствует, содержимое буфера, на который указывает lpString, не изменяется.

Функция DlgDirSelectComboBoxEx не позволяет возвращать несколько имен файлов из поля со списком.

Если строка длиннее или длиннее буфера, буфер содержит усеченную строку с завершающим символом NULL.

DlgDirSelectComboBoxEx отправляет сообщения CB_GETCURSEL и CB_GETLBTEXT в поле со списком.

Эту функцию можно использовать со всеми тремя типами полей со списком (CBS_SIMPLE, CBS_DROPDOWN и CBS_DROPDOWNLIST).

Предупреждение системы безопасности: Неправильное использование этой функции может вызвать проблемы в приложении. Например, параметр nCount должен быть правильно задан для версий ANSI и Юникода. Если это не сделать, это может привести к переполнению буфера. Прежде чем продолжить, ознакомьтесь с рекомендациями по безопасности: элементы управления Microsoft Windows .

Windows 95 или более поздней версии: DlgDirSelectComboBoxExW поддерживается Microsoft Layer для Юникода (MSLU). Для этого необходимо добавить определенные файлы в приложение, как описано в разделе Microsoft Layer for Юникод в системах Windows Me/98/95.

Примечание

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

Требования

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

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

CB_GETCURSEL

CB_GETLBTEXT

DlgDirListComboBox

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