Как я могу избежать появления панели задач при установке autohide при использовании ShowBalloonHint?Delphi: как отображать баллончик, не показывая панель задач при установке autohide
ответ
Область уведомлений в Windows имеет определенное поведение. Вы можете пожелать, чтобы он вел себя по-другому, но это не меняет того факта, что то, что вы хотите сделать, не может быть сделано.
Извините за неудобство.
Близкий обходной путь будет создать TOOLTIP
окно самостоятельно, и поместите его на экране рядом, где вы думаете, в области уведомлений пользователя может быть:
- нижний правый
- верхний правый
- внизу слева
- первичный монитор
- дополнительный монитор
Это будет включать использование
GetSystemMetrics(SM_CXFULLSCREEN)
GetSystemMetrics(SM_CYFULLSCREEN)
SystemParametersInfo(SPI_GETWORKAREA)
Затем создается TOOLTIPS_CLASS
окно:
FHandle := CreateWindow(TOOLTIPS_CLASS, PChar(''),
WS_POPUP or TTS_BALLOON,
Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT),
Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT),
0, 0, HInstance,
nil);
Тогда вы бы отправить его в TTM_SETTITLE
, TTM_UPDATETIPTEXT
, TTM_TRACKPOSITION
сообщения, и, наконец, важный момент: TTM_TRACKACTIVATE
:
А потом через некоторое время вы скрываете подсказку с другим вызовом TTM_TRACKACTIVATE
.
Вы свободны follow Windows user experience guidelines, или вы можете свернуть свой собственный.
Вопрос и заголовок достаточно просты, чтобы понять проблему. Установите панель задач на автовыбор, затем используйте TrayIcon в своей программе и вызовите ShowBaloonHint, панель задач выйдет из автоматического скрытия. – hikari
Итак, вы хотите, чтобы ваши уведомления на воздушном шаре не вели себя как стандартные уведомления о воздушном шаре Windows? Тогда не используйте стандартные уведомления о шарах Windows и создайте свои собственные. Если это слишком много, примите, что какое-то поведение не регулируется. – hvd
«Тогда в чем смысл существования этого сайта?» Он предназначен для дополнения веб-поиска, а не для его замены. –