aquanet sk |
Отправлено: 31.01.2007, 19:54 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 87
|
У меня реализован вызов PopupMenu по ПКМ на пиктограмме в трее методом Popup(...):
...
GetCursorPos(&P);
PopupMenu1->Popup(P.x,P.y);
...
Но есть один нюанс: в отличии от многих других программ, при щелчке на рабочем столе и других областях за пределами самого PopupMenu, моё меню не исчезает, пока не выбрать в нем какой-либо пункт.
Проблема ещё в том, что у меня не получается использовать событие OnDeactivate (ApplicationEvents), потому как программа и так уже потеряла свой фокус, когда была "свернута" в системный трей.
Как можно исправить данный недостаток? |
|
_NIK_ |
Отправлено: 01.02.2007, 00:45 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 55
|
Странно как-то у тебя устроено.
Зачем делать
...
GetCursorPos(&P);
PopupMenu1->Popup(P.x,P.y);
...
если меню и так как надо выскакивает.
...
а у меня меню исчезает при клике на области вне меню
...
Что использовал для работы?Напиши часть кода.
|
|
Romikgy |
Отправлено: 01.02.2007, 21:51 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 72
|
CODE | GetCursorPos(&P);
SetForegroundWindow(тут хандл главной формы);
PopupMenu1->Popup(P.x,P.y); | |
|
_NIK_ |
Отправлено: 01.02.2007, 22:32 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 55
|
QUOTE (Romikgy @ 01.02.2007, 21:51) | CODE | GetCursorPos(&P);
SetForegroundWindow(тут хандл главной формы);
PopupMenu1->Popup(P.x,P.y); |
|
У TrayIcon есть такое свойство PopupMenuOn, как думаешь что оно означает?
Выбери один из вариантов, кот тебе подходит!
А для сворачивания/разворачивания я использовал вот что:
Function СВЕРНУТЬ(...)
{
MainForm->Hide();
TrayIcon->Visible = true;
}
Function Развернуть(...) //Как правило элемент меню при нажатии на иконку
{
MainForm->Show();
TrayIcon->Visible = false;
}
|
|
aquanet sk |
Отправлено: 03.02.2007, 00:59 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 87
|
QUOTE | У TrayIcon есть такое... | у меня кодом меню создается.
жалко нельзя название темы править. в некоторых форумах есть такая возможность.
Отредактировано aquanet sk — 03.02.2007, 01:21 |
|
aquanet sk |
Отправлено: 03.02.2007, 01:04 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 87
|
Romikgy, смекалистый сработало.
По ЛКМ то я поставил фореграунд, а вот у меню думал эффект другой, ан нет.
GetCursorPos(&P);
SetForegroundWindow(тут хандл главной формы); — решение проблемы.
PopupMenu1->Popup(P.x,P.y);
тему можно закрыть
Отредактировано aquanet sk — 03.02.2007, 01:11 |
|