Главная страница
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.057 c
1-1110362767
rolex
2005-03-09 13:06
2005.03.20
Зачем нужны DLL???


1-1109782453
Knight
2005-03-02 19:54
2005.03.20
TShellTreeView.Root...


1-1109871620
vandal
2005-03-03 20:40
2005.03.20
Как обработать текст в TLabel?


14-1108916899
Девушка
2005-02-20 19:28
2005.03.20
Ethernet-устройства


10-1086872365
Kraj
2004-06-10 16:59
2005.03.20
Чат на основе сокетов