Как отобразить амперсанд в командной строке Windows?
Я программирую с использованием C++ и WinAPI. Я добавил значок в системном трее с помощью Shell_NotifyIcon(NIM_ADD, ...) API. С этим значком также связано соответствующее приглашение пользователя, содержащее символ амперсанда, например, "Просмотр и копирование". Но то, что пользователь видит, когда появляется всплывающее окно, это "Просмотр копии". Я попытался удвоить амперсанд, как, например, "View && Copy", но это не помогло.
У кого-нибудь есть идеи, как отобразить амперсанд в подсказке Windows трей?
2 ответа
Видимо, амперсанды требуют двойного побега, как это &&&
,
Я не уверен почему, но это похоже на работу.
Мой источник: эта ссылка.
Избегать амперсанда не нужно - Windows по своему дизайну удалит все амперсанды из текста всплывающей подсказки, как правило, по уважительной причине:
Многие приложения создают панели инструментов, содержащие инструменты, которые соответствуют командам меню. Для таких инструментов удобно, чтобы элемент управления всплывающей подсказки отображал тот же текст, что и соответствующий пункт меню. Система автоматически удаляет символы амперсанда (&) из всех строк, переданных в элемент управления всплывающей подсказки, и завершает строку первым символом табуляции (\t), если только элемент управления не имеет стиля TTS_NOPREFIX.
Как видите, ответ очень прост: нужно просто добавить TTS_NOPREFIX
к классу всплывающей подсказки, и вы будете установлены.