Рейтинг:
0
Jochen Arndt
Вы не должны устанавливать все три свойства, а только одно из них, потому что они являются эксклюзивными:
#define SS_ENDELLIPSIS 0x00004000L
#define SS_PATHELLIPSIS 0x00008000L
#define SS_WORDELLIPSIS 0x0000C000L
#define SS_ELLIPSISMASK 0x0000C000L
Таким образом, установка всех из них такая же, как
SS_WORDELLIPSIS
что приводит к эллипсам в конце с путями, которые не содержат пробелов.
Если вы хотите сделать это вручную вы можете использовать оболочку
Функция PathCompactPath (Windows)[
^] функция.
jeron1
Йохен, мои извинения, у меня был мозговой пердеж, и я собирался проголосовать за 5.
странно, это не позволило мне изменить свой голос сразу же, это должно быть исправлено сейчас. [/редактировать]
Jochen Arndt
Без проблем. У меня достаточно очков.
Спасибо, что проголосовали (сейчас).
Member 13495762
Мне нужно, чтобы все было именно так.:
C:\MyProject\..\FilesForTeam
Jochen Arndt
Последовали ли вы моему совету использовать SS_PATHELLIPSIS (установите соответствующее свойство в Редакторе ресурсов и снимите значения свойств Word и End ellipsis)?
Вы также можете сделать это программно, вызвав функцию-член ModifyStyle(SS_ELLIPSISMASK, SS_PATHELLIPSIS) вашего статического элемента управления.
Однако это и функция PathCompactPath() сохранят как можно больше символов, создав также что-то вроде " C:\MyProject\Some-да...\FilesForTeam".
Если вы не хотите этого, вы должны написать свою собственную функцию.
Member 13495762
Я поставил в resourse.h
#определить SS_PATHELLIPSIS 0x00008000L
В visual studio я установил свойства статического поля - > false, и это не сработало
Jochen Arndt
SS_PATHELLIPSIS уже определен в winuser.h. я предоставил определения, чтобы вы могли видеть, что использование всех стилей ведет себя как многоточие слова.
Если вы используете редактор ресурсов, который поместит стиль в ваш файл projectname.rc (вы можете открыть этот файл с помощью текстового редактора).
Просто установите соответствующие свойства в Редакторе ресурсов. Я только что протестировал его, и даже редактор ресурсов показывает текст, как и ожидалось, с точками посередине.
Member 13495762
Когда я использую ModifyStyle(SS_ELLIPSISMASK, SS_PATHELLIPSIS) Я получаю
C:\MyProject\File...\FileName.cpp вместо этого C:\MyProject\..\FilesForTeam
Jochen Arndt
Смотрите мой предыдущий комментарий:
"Однако это и функция PathCompactPath() сохранят как можно больше символов, создавая также что-то вроде" C:\MyProject\Some...\FilesForTeam".
Если вы не хотите этого, вы должны написать свою собственную функцию."
Но почему вы хотите, чтобы он отличался от используемого Windows и, следовательно, ожидался пользователями?
Jochen Arndt
Также:
Если вы хотите отобразить путь без имени файла, вы должны передать этот путь только SetWindowText (), а не полный путь, включая имя файла.