Форум: "WinAPI";
Текущий архив: 2008.06.22;
Скачать: [xml.tar.bz2];
ВнизPopUpMenu и tray-приложение... Найти похожие ветки
← →
botaniQ (2007-10-03 10:43) [0]Доброго времени!
Вот незадача...Моё приложение тихонько прячется в трее и при нажатии на иконку в трее выскакивает мое PopUp меню - но при потере фокуса оно не исчезает и не исчезнет до тех пор пока в нем чего нибудь не выберут...Внимание...вопрос =)
Как бы избавиться от этого??
Наткнулся в и-нете на вот что:
Иногда, при потере фокуса, всплывающее меню в 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;
Но что то не помогает... =(
← →
Leonid Troyanovsky © (2007-10-03 11:11) [1]
> botaniQ (03.10.07 10:43)
> - но при потере фокуса оно не исчезает
Ошибка в 17 строке.
> Но что то не помогает... =(
А как PostMessage может помочь, если выход из меню не произошел?
--
Regards, LVT.
← →
clickmaker © (2007-10-03 11:17) [2]
> и послать ему сообщение WM_NULL.
лишнее
← →
botaniQ (2007-10-03 11:18) [3]
> Leonid Troyanovsky © (03.10.07 11:11) [1]
Этот код не я придумывал - вообще не понимаю способа его действия...Вот и прошу помощи =)
← →
Anatoly Podgoretsky © (2007-10-03 11:29) [4]> botaniQ (03.10.2007 10:43:00) [0]
Что такое tray-приложение?
Это твой термин?
← →
botaniQ (2007-10-03 11:33) [5]Приложение с иконкой в системном трее...
← →
Leonid Troyanovsky © (2007-10-03 11:38) [6]
> botaniQ (03.10.07 11:18) [3]
> Этот код не я придумывал - вообще не понимаю способа его
> действия...Вот и прошу помощи =)
В показанном коде ошибок нет.
Ну, а PostMessage, дейс-но, лишний.
--
Regards, LVT.
← →
botaniQ (2007-10-03 11:42) [7]Хм...странно - я нажимаю на иконку - выпадает меню, но когда я нажимаю, допустим на рабочий стол - то меню все равно остаётся на месте и никак не исчезает... =(
← →
botaniQ (2007-10-03 12:21) [8]И стоило ли мучится...
вот так вот это все вышло
WM_RBUTTONDOWN :
begin
GetCursorPos (MousePos);
SetForegroundWindow(MainForm.Handle);
MainForm.PopUpMenu.Popup (MousePos.X, MousePos.Y);
end;
Достаточно было одной сточки...
← →
Leonid Troyanovsky © (2007-10-03 14:39) [9]
> botaniQ (03.10.07 12:21) [8]
> Достаточно было одной сточки...
Вот такая она ошибочная - 17 строка.
--
Regards, LVT.
← →
Dib@zol © (2007-10-03 17:36) [10]> PopUpMenu и tray-приложение...
Ещё одну иконку в трей запуздыриваем? :)
← →
LENIN_INC (2007-10-10 13:18) [11]Удалено модератором
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2008.06.22;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.043 c