![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как программно закрыть PopUpMenu?
kofman © (2002-09-17 11:41:00)Мастера помогите, я в программе при возникновении события OnMouseMove над компонентом TLabel раскрываю PopUpMenu, а при наведении на другой Label, оно должно закрыться, как это сделать?
kofman (2002-09-20 23:55:00) [1]Ну что никто так и незнает, как PopUp закрыть?
kofman (2002-09-17 21:21:00) [2]Ну не совсем понятно:( поясните чайнику поподробнее пожалуйста.
Marcus (2002-09-17 12:42:00) [3]Дело в том, что при активизации popupmenu, приложение входит в так называемый "menu loop" - бесконечный цикл, когда все остальные контролы на форме перестают получать даже OnMouseMove.
Думаю, тут без хуков не обойтись. Надо делать что-то типа SetWindowsHookEx(WH_MSGFILTER, ...), а затем ловить сообщения с Code = HC_ACTION. Советую посмотреть в исходниках VCL, в юните comctrls, как это реализовано для кнопок Toolbar"a с выпадающими меню: при перемещении по кнопкам-пунктам меню, выпадающие меню закрываются без нажатия кнопки.