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

Вниз

Отлов щелчка мыши   Найти похожие ветки 

 
X-Disa   (2005-03-07 06:49) [0]

Здравствуйте. Столкнулся с проблемой.
Есть некое окно, оно должно вести себя как меню. То есть если юзер кликнул мышью вне этого окна (даже вне проги), окон должно убираться. Собственно вопрос: Как отследить, что юзер кликнул мышью?


 
QuasiLamo ©   (2005-03-07 07:00) [1]

Как закрыть всплывающее меню в System Tray когда оно теряет фокус
--------------------------------------------------------------------------------

Иногда, при потере фокуса, всплывающее меню в 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;


 
X-Disa   (2005-03-07 07:16) [2]

Что-то не выходит. Пишу так:
...
 protected
 procedure WndProc(var Msg: TMessage); message WM_USER+1;
...

procedure TFMForm.WndProc(var Msg: TMessage);
var
p: TPoint;
begin
case Msg.Msg of
  WM_USER + 1:
    case Msg.lParam of
      WM_LBUTTONDOWN:
        begin
          SetForegroundWindow(Handle);
          GetCursorPos(p);
          Hide;
          PostMessage(Handle, WM_NULL, 0, 0);
        end;
    end;
end;
inherited;
end;


 
Fedia ©   (2005-03-07 07:20) [3]

>То есть если юзер кликнул мышью вне этого окна (даже вне проги), >окон должно убираться

В объявлении класса формы добавь:

 private
   procedure OnActivate(var msg: TWMActivate); message WM_ACTIVATE;

Сама процедура:

procedure TForm2.OnActivate(var msg: TWMActivate);
begin
 inherited;
 if msg.Active=WA_INACTIVE then close;
end;



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

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

Наверх




Память: 0.47 MB
Время: 0.031 c
4-1107445384
Artur
2005-02-03 18:43
2005.03.20
Система


1-1109933326
MTsv DN
2005-03-04 13:48
2005.03.20
LIB -> OBJ


6-1106038483
Nikola62
2005-01-18 11:54
2005.03.20
Получение протокола звонков по Lan


1-1110284608
h010d
2005-03-08 15:23
2005.03.20
Беда с завершением работы потока


4-1106918800
MetalFan
2005-01-28 16:26
2005.03.20
Пример работы с ASPI