| Автор
| Сообщение |
 dogma
aka Достоевский

Возраст: 27
Знак зодиака: 
Зарегистрирован: 20.12.2004
Сообщения: 1702
Откуда: Холмск
|
|
|
Цитата |
|
Вопрос такой. Как обработать нажатие правой клавиши мышки на MainMenu. При это нужно из пункта в меню (на котором было произведено нажатие) взять значения некоторых свойств.
У меню есть подпункты. _________________ Bonum initium est dimidium facti
SQL-задачи (on-line) |
|
| В начало |
|
 |
|
|
 |
 NikotiN
Розовый мамонт

Возраст: 26
Знак зодиака: 
Зарегистрирован: 18.03.2005
Сообщения: 2137
|
|
|
Цитата |
|
| обрабатывать сообщения WM_правая_кнопка_мыша? |
|
| В начало |
|
 |
 Шурик
Я живу тут....

Возраст: 42
Знак зодиака: 
Зарегистрирован: 15.01.2003
Сообщения: 1951
Откуда: Киев
|
|
|
Цитата |
|
А где обрабатывать? В форме?
Это ты знаешь или предполагаешь? _________________ Ответ готов, готов ли твой вопрос? |
|
| В начало |
|
 |
 NikotiN
Розовый мамонт

Возраст: 26
Знак зодиака: 
Зарегистрирован: 18.03.2005
Сообщения: 2137
|
|
|
Цитата |
|
и то и то :)
ведь если нажата правая кнопка на меню, значит сообщение WM_ послано, остальное дело практики. :) вернее времени, ведь надо найти кому оно послано, и где можно перехватывать. :-) |
|
| В начало |
|
 |
 Шурик
Я живу тут....

Возраст: 42
Знак зодиака: 
Зарегистрирован: 15.01.2003
Сообщения: 1951
Откуда: Киев
|
|
|
Цитата |
|
Да, логично.
Но меню - системный объект. Так же, как Edit, ComboBox. Только у контролов есть хэндл окна и оконная функция для обработки "своих" сообщений. А меню, насколько помню, имеет свой, "неоконный" хэндл. Насколько я понимаю, меню обрабатывает все сообщения мыши само и до приложение доходит только конечный WM_Command.
Посуди сам, если от меню будет идти сообщение мыши, какие координаты в нём должны быть указаны? Ну, в принципе есть неклиентская область. Ну допустим, пришли координаты. Но как по координатам можно узнать пункт меню? Оно ведь не имеет HWnd.
Такие вот рассуждения... _________________ Ответ готов, готов ли твой вопрос? |
|
| В начало |
|
 |
 dogma
aka Достоевский

Возраст: 27
Знак зодиака: 
Зарегистрирован: 20.12.2004
Сообщения: 1702
Откуда: Холмск
|
|
|
Цитата |
|
Чтож - похоже дела хреновы. Жаль, что у события onClick об. Меню нет параметра типа Tshift _________________ Bonum initium est dimidium facti
SQL-задачи (on-line) |
|
| В начало |
|
 |
 Шурик
Я живу тут....

Возраст: 42
Знак зодиака: 
Зарегистрирован: 15.01.2003
Сообщения: 1951
Откуда: Киев
|
|
|
Цитата |
|
| Цитата: | | Жаль, что у события onClick об. Меню нет параметра типа Tshift |
Даже если бы оно было, тебе это не помогло. Проверь сам - меню не реагирует на нажатие правой клавиши мыши. _________________ Ответ готов, готов ли твой вопрос? |
|
| В начало |
|
 |
 Ktf
Администратор

Возраст: 32
Знак зодиака: 
Зарегистрирован: 15.05.2005
Сообщения: 1502
Откуда: localhost
|
|
|
Цитата |
|
| Цитата: | | Проверь сам - меню не реагирует на нажатие правой клавиши мыши. |
Да?
А как насчет константы TPM_RIGHTBUTTON, которую можно указать среди флагов при вызове TrackPopupMenu(Ex)?
Кстати, сам MS в том же ослике никаких таких MAINMENU не использует. Там стоит объект класса ToolbarWindow32(для VCL это TToolBar) с кнопками и при нажатии на любую их них вызывается POPUPMENU функцией TrackPopupMenu(Ex).
При этом, если зайти в пункт Избранное и нажать правой кнопкой мыши на какой-либо ссылке, вызовется еще одно POPUPMENU с использованием той же функции!
Кто нам мешает делать так же?  |
|
| В начало |
|
 |
 Шурик
Я живу тут....

Возраст: 42
Знак зодиака: 
Зарегистрирован: 15.01.2003
Сообщения: 1951
Откуда: Киев
|
|
|
Цитата |
|
to Ktf: Что же ты молчал до сих пор ?
| Цитата: | | Кто нам мешает делать так же? |
Лично я о всём этом не знал. _________________ Ответ готов, готов ли твой вопрос? |
|
| В начало |
|
 |
|
|
 |
 Ktf
Администратор

Возраст: 32
Знак зодиака: 
Зарегистрирован: 15.05.2005
Сообщения: 1502
Откуда: localhost
|
|
|
Цитата |
|
| Цитата: | | как по координатам можно узнать пункт меню? |
есть функция MenuItemFromPoint
осталось только вызвать ее в нужном месте  _________________ Пойду посплю перед сном. |
|
| В начало |
|
 |
 dogma
aka Достоевский

Возраст: 27
Знак зодиака: 
Зарегистрирован: 20.12.2004
Сообщения: 1702
Откуда: Холмск
|
|
|
Цитата |
|
| Цитата: | | константы TPM_RIGHTBUTTON |
Что-то я не понял, куда ты ее засунешь при использовании МейнМеню. У него нет обработчика для нажатия правой клавиши мыши. А это Tshift.... я спутал с другим типом. Так что беру свои слова обратно.
з.ы. Вместо МейнМеню использую Дерево. Там это все удалось реализовать. _________________ Bonum initium est dimidium facti
SQL-задачи (on-line) |
|
| В начало |
|
 |
 Ktf
Администратор

Возраст: 32
Знак зодиака: 
Зарегистрирован: 15.05.2005
Сообщения: 1502
Откуда: localhost
|
|
|
Цитата |
|
| Цитата: | | Вместо МейнМеню использую Дерево. |
И как же тебе удалось его туда запендюрить?  _________________ Пойду посплю перед сном. |
|
| В начало |
|
 |
 dogma
aka Достоевский

Возраст: 27
Знак зодиака: 
Зарегистрирован: 20.12.2004
Сообщения: 1702
Откуда: Холмск
|
|
|
Цитата |
|
| Цитата: | | И как же тебе удалось его туда запендюрить? |
Туда это куда и что? _________________ Bonum initium est dimidium facti
SQL-задачи (on-line) |
|
| В начало |
|
 |
 Ktf
Администратор

Возраст: 32
Знак зодиака: 
Зарегистрирован: 15.05.2005
Сообщения: 1502
Откуда: localhost
|
|
|
Цитата |
|
Дерево на место мейнменю _________________ Пойду посплю перед сном. |
|
| В начало |
|
 |
 dogma
aka Достоевский

Возраст: 27
Знак зодиака: 
Зарегистрирован: 20.12.2004
Сообщения: 1702
Откуда: Холмск
|
|
|
Цитата |
|
Ну, то, что я хотел сделать с мейн меню, я сделал с деревом. _________________ Bonum initium est dimidium facti
SQL-задачи (on-line) |
|
| В начало |
|
 |
|