![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как происходит закрытие меню? [D6, Win2k]
cult © (2003-03-04 13:15:00)Господа,
кто нибудь наверняка знает,
что происходит на форме для того, чтобы закрылось меню. Ему посылаются какие-то сообщения или как это делается?
Суть в том, что у меня компонентик написан вместо PopupMenu, и я хочу, чтобы он закрывался и пропадал в тех же случаях, в каких это делает обычное PopupMenu.
Diamond Cat (2003-03-04 23:16:00) [1]я использовал wm_setfocus и wm_killfocus работало нормально
Игорь Шевченко (2003-03-04 13:57:00) [2]Либо WM_CANCELMODE (если нажали вне окна), либо WM_LBUTTONUP при условии, что в этому же окну было послано сообщение WM_LBUTTONDOWN. Можно в VCL посмотреть код TPopupListBox (то ли grids.pas, то ли dbgrids.pas, то ли dbctrls.pas)
cult (2003-03-04 13:37:00) [3]Игорь Шевченко:
>Если компонент является окном, то вести себя он должен, скорее >всего, как ListBox"овая часть ComboBox (закрываться при выборе >Item"a или при нажатии мышью в другом месте).
Кажется, это как раз то, что нужно. А по какому сообщению закрывается эта штука в комбобоксе?
Игорь Шевченко (2003-03-04 13:33:00) [4]Тогда я не совсем понял вопроса.
Если компонент является окном, то вести себя он должен, скорее всего, как ListBox"овая часть ComboBox (закрываться при выборе Item"a или при нажатии мышью в другом месте).
Если компонент - наследник меню, то он сам уже должен все уметь.
На всякий случай - WM_ENTERMENULOOP, WM_EXITMENULOOP, WM_INITMENUPOPUP и т.д.
cult (2003-03-04 13:24:00) [5]уважаемый Игорь, этот модуль я в данный момент активно ковыряю, но на это может уйти много времени, я же прошу кого-нибудь, кто уже сталкивался с вопросом, помочь мне конкретным советом. Может, это будете Вы? :)
Игорь Шевченко (2003-03-04 13:22:00) [6]Menus.pas