C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
PopupMenu, ... отмена вызова меню из трея ...
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



Странно как-то у тебя устроено.wink.gif
Зачем делать

...
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, как думаешь что оно означает?rolleyes.gif
Выбери один из вариантов, кот тебе подходит!

А для сворачивания/разворачивания я использовал вот что:

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, смекалистый biggrin.gif сработало.
По ЛКМ то я поставил фореграунд, а вот у меню думал эффект другой, ан нет.

GetCursorPos(&P);
SetForegroundWindow(тут хандл главной формы);
 — решение проблемы.
PopupMenu1->Popup(P.x,P.y);

тему можно закрыть

Отредактировано aquanet sk — 03.02.2007, 01:11

Вернуться в Вопросы программирования в C++Builder