Увеличьте число символов в поле имени файла диалогового окна выбора файла GetOpenFileName

Вы не можете сделать это без итерации. Если вы хотите избежать традиционного цикла, вы все равно можете использовать forEach:

brandList.forEach(brand -> brand.setSelected(false));
5
задан Community 23 May 2017 в 10:32
поделиться

3 ответа

Оказывается, что средства редактирования (По крайней мере, в моей среде разработки) являются полем комбинированного списка, таким образом, EM_SETLIMITTEXT не является соответствующим.

Вместо этого я разыскал использование поля комбинированного списка GetDlgCtrl на родителе открытого диалогового окна файла (я выполняю в этом OnInitDialog обработчик), бросает его к CComboBox*, затем звоните LimitText() устанавливать предел.

Это могло также быть сделано путем отправки a CB_LIMITTEXT обменивайтесь сообщениями к управлению для тех из Вас, кто не работает с CFileDialog. Соответствующее значение здесь наиболее вероятно OPENFIILENAME.nMaxFile значение, которое передается в.

4
ответ дан 14 December 2019 в 13:50
поделиться

От именования файла или каталога на MSDN:

В Windows API (за некоторыми исключениями, обсужденными в следующих параграфах), максимальная длина для пути MAX_PATH, который определяется как 260 символов.

Даже если Вы могли бы принудить более длинные строки из диалогового окна, можно столкнуться с проблемой по линии при использовании API, которые были кодированы против MAX_PATH.

Документы продолжают:

Windows API имеет много функций, которые также имеют версии Unicode для разрешения пути расширенной длины для максимальной общей длины пути 32 767 символов. Этот тип пути состоит из компонентов, разделенных обратными косыми чертами, каждым до значения, возвращенного в lpMaximumComponentLength параметре функции GetVolumeInformation. Для определения пути расширенной длины используйте "\\?\" префикс. Например, "\\?\D:\<very long path>". (Символы < > используются здесь для визуальной ясности и не может быть часть допустимой строки пути.)

2
ответ дан 14 December 2019 в 13:50
поделиться

Я полагаю, что это - жесткий предел, который не может быть обойден. Единственное время это должно иметь значение, - когда Вы хотите выбрать больше чем один файл, так как предел достаточно для максимальной длины имени файла.

Я добавил кнопку "All Files" к этим диалоговым окнам для открытия всех файлов в папке; это - единственное обходное решение, которое я нашел.

0
ответ дан 14 December 2019 в 13:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: