Страница 1 из 1

Как закрыть окно по клику вне его

Добавлено: 05 Март 2012, 12:14
ru_alex
Всем привет!
Помогите реализовать. Есть задача сделать что-то вроде Popup меню, на котором будут разные элементы. То есть открываем окно под кнопкой, что-то в нем делаем, нажимае ОК. Это сейчас работает, но хочется поведение приблизить к классическому popup меню, чтобы окно закрывалось, если щелкнули помимо него.

Re: Как закрыть окно по клику вне его

Добавлено: 05 Март 2012, 15:23
Губин Игорь
Определись. Если тебе нужно именно PopUp, то и используй PopUp() 8)

Re: Как закрыть окно по клику вне его

Добавлено: 05 Март 2012, 16:13
ru_alex
Мне нужен не Popup(), мне надо окно, в котором я выбеу дату, включу пару галочек и тд, но вот хочу опробовать вариант, когда это окно будет закрываться по клику вне его.

Re: Как закрыть окно по клику вне его

Добавлено: 05 Март 2012, 16:22
Губин Игорь
The window is gaining input focus from another thread. This is the event on which you restore any data you saved in EVENT:LoseFocus. The system is modal during this event.



EVENT:GainFocus is not generated until EVENT:LoseFocus is processed (if focus was

on another window of the same program).

Re: Как закрыть окно по клику вне его

Добавлено: 05 Март 2012, 17:04
ru_alex
Event:LoseFocus не катит, вернее не всегда оно происходит, пробовал виндовые события ловить, но тоже не получается, по крайней мере события с мышью генерируются только в клиентской области окна, соответсвенно при щелчке помимо не генерируются.

Re: Как закрыть окно по клику вне его

Добавлено: 05 Март 2012, 18:08
Дед Пахом
Посмотри в сторону SetWindowsHookEx(WH_MOUSE)

Re: Как закрыть окно по клику вне его

Добавлено: 05 Март 2012, 18:31
kreator
Стандартный Splash так реализован. Посмотри куда чего пишется. В принципе там всё просто. Не поймёшь, напиши, попробуем разобраться.

Re: Как закрыть окно по клику вне его

Добавлено: 07 Март 2012, 1:29
Igor Vesnin
Ловим событие WM_NCACTIVATE и посылаем WM_CLOSE