2015-02-26 10 views
0

Я пытаюсь выяснить способ добавления TButton внутри подсказки шара TTrayIcon.Компоненты внутри подсказки воздушного шара

Возможно ли это?

Описание Применение и назначение:

В основном мое программное обеспечение обнаруживает, когда устройство USB подключен к компьютеру и автоматически всплывает воздушный шар намек, который уведомляет пользователя о том, что был подключен новый прибор.

Что должно случиться, так это спросить пользователя: «Вы хотите выполнить операцию A или операцию B?», и я хотел бы дать пользователю быстрый доступ к параметрам прямо внутри подсказки ballooon.

То, что я пробовал:

погуглить много, но не успеха, потому что нет информации о том, как получить доступ к интерфейсу баллонной подсказки в любом случае.

Я использую Delphi XE2 на Windows 8.

+0

Возможно, вам будет проще сделать собственное окно воздушного шара. –

+0

@JerryDodge, если это так, как я могу правильно воспроизвести окно с воздушным шаром Windows? Кроме того, как я могу получить положение значка в трее, чтобы я мог правильно выровнять пользовательские окна шаров? Или, может быть, я просто могу сделать свое окно с баллоном в правом нижнем углу с фиксированной позицией? Что ты предлагаешь? – xaid

+0

Вам обязательно нужно будет открыть его в месте расположения значка, потому что пользователь может переместить панель задач на другую часть экрана. Что касается того, чтобы воспроизвести оригинал, это зависит от вашего дизайна. Не обязательно обязательно следовать стандартным подсказкам, кроме стандартизации UI. Просто многие программы, как правило, делают свои собственные по тем же причинам. –

ответ

4

TTrayIcon является оболочкой для Shell_NotifyIcon(), который не поддерживает пользовательские элементы управления в своих всплывающих уведомлений.

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

+0

Спасибо, но он ничего не говорит о том, как получить значок значка моего программного обеспечения в области значков в трее. – xaid

+0

@AidVllasaliu: Это именно то, что делает «Shell_NotifyIconGetRect()». Вы даете ему HWND/ID нужного значка в трее, и он дает текущие координаты экрана значка. Затем вы можете поместить свое окно относительно этих координат. –

+0

Спасибо. Я буду использовать это. – xaid