Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.02;
Скачать: CL | DM;

Вниз

Как закрыть всплывающее меню в SystemTray когда оно теряет фокус?   Найти похожие ветки 

 
Volf_555   (2006-01-15 16:29) [0]

В справке по этому поводу пишется:
Иногда, при потере фокуса, всплывающее меню в System Tray при потере фокуса не закрывается. Поэтому, при обработке сообщений для всплывающего меню необходимо поместить окно на передний план и послать ему сообщение WM_NULL.

procedure TForm1.WndProc(var Msg : TMessage);
var
 p : TPoint;
begin
 case Msg.Msg of
   WM_USER + 1:
   case Msg.lParam of
     WM_RBUTTONDOWN: begin
        SetForegroundWindow(Handle);
        GetCursorPos(p);
        PopupMenu1.Popup(p.x, p.y);
        PostMessage(Handle, WM_NULL, 0, 0);
     end;
   end;
 end;
 inherited;
end;


Когда я добавляю эту процедуру в свой проэкт и в раздел private добавляю procedure WndProc(var Msg : TMessage);, то эта процедура не срабатывает, то есть - когда я нажимаю правой кнопкой в трэи - всплывает попап-меню. Если я нажимаю мышью за границей этого меню, то меню не закрывается....

Как сделать чтобы меню закрывалось при щелчке мышью за пределами меню?


 
VirEx ©   (2006-01-15 16:42) [1]

следить активно ли окно или нет, у меня в WinConsul сделано так:
WM_ACTIVATE:
//если окно стало неактивным и оно раскрыто до конца то анимация "сворачивания"
if (Msg.lParam shl 16)=WA_INACTIVE then


 
Rouse_ ©   (2006-01-15 17:34) [2]

Просто перед показом меню делай SetForegroundWindow(Handle);


 
Volf_555   (2006-01-15 17:37) [3]


> Rouse_ ©   (15.01.06 17:34) [2]


Огромное спасибо! То что нужно!



Страницы: 1 вся ветка

Текущий архив: 2006.04.02;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.035 c
2-1142416756
VitV
2006-03-15 12:59
2006.04.02
DBLookupComboBox-заполнение.


2-1142930771
pkm
2006-03-21 11:46
2006.04.02
Random.


15-1142262298
Новичоккк
2006-03-13 18:04
2006.04.02
Вопрос по PHP (Array)


6-1134443488
SergP
2005-12-13 06:11
2006.04.02
Ограничения wininet на кол-во соединений.


8-1130477605
Idx
2005-10-28 09:33
2006.04.02
Как убрать черные(слишком темные) тений в ImageList