Member 13495762 Ответов: 1

Как я могу отобразить путь к моим проектам с точками внутри


В моем статическом тексте (на нашей стартовой странице) в visual studio я могу отобразить путь к моему проекту следующим образом:
C:\MyProject\Something\FilesF...

Я хотел бы иметь точки внутри пути, чтобы увидеть последний каталог.

Что я уже пробовал:

Для моего статического текстового элемента управления я установил такие свойства:
путь многоточие , слова многоточие ,многоточие конец = истина

Могу ли я установить это по свойствам или это должно быть сделано по-другому?

Member 13495762

C:\MyProject\..\FilesForTeam

1 Ответов

Рейтинг:
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 (), а не полный путь, включая имя файла.