|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.08.2012, 12:23 | #1 |
Пользователь
Регистрация: 08.11.2011
Сообщений: 46
|
Отловить клик правой кнопкой мыши в ComboBox
Добрый день. Есть необходимость выполнять некоторые действия, кликнув правой кнопкой мыши по элементу выпавшего списка ComboBox'а. Что-то никак не могу ни сама сообразить, ни найти в инете подсказку, может, неправильно формулирую запрос. Событие OnClick замечательно отлавливает левую и никак не реагирует на правую. Подскажите пожалуйста, как можно поймать этот самый "правый" клик?
Заранее спасибо. |
04.08.2012, 11:12 | #2 |
Форумчанин
Регистрация: 01.06.2009
Сообщений: 108
|
Получай хендл выпадающего списка в OnDropDown через GetComboboxInfo, подменяй его оконную процедуру своей, в которой лови WM_RBUTTON<...>, и делай с ним всё, что нужно. По закрытию выпадающего списка - восстанавливай оконную функцию (насколько я помню, при открытии списка он может создаваться заново, поэтому нельзя сделать один раз его сабклассинг и постоянно с ним работать, есть вероятность нарваться на проблемы). Вот примерный код:
Код:
Код:
|
06.08.2012, 13:58 | #3 |
Пользователь
Регистрация: 08.11.2011
Сообщений: 46
|
Спасибо, буду разбираться.
P.S. Офф - кошка шикарная, давно таких не видела |
07.08.2012, 13:37 | #4 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,206
|
Именно на самом компоненте? Если нет, то ответ дан выше. Если да, то у каждого компонента есть свойство OnContextPopup, которое срабатывает как раз, когда на компоненте нажали правую кнопку мыши.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
07.08.2012, 14:59 | #5 |
Пользователь
Регистрация: 08.11.2011
Сообщений: 46
|
OnContextPopup у меня срабатывает почему-то только при клике на самом компоненте и не срабатывает на выпавшем списке. Пробовала определять координаты выпавшего списка, преобразовывать в оконные и вызывать выполнение нужных функций при клике в заданном прямоугольнике - не работает. Возможно, просто не туда привязываю вызов.
|
07.08.2012, 18:23 | #6 | |
Форумчанин
Регистрация: 01.06.2009
Сообщений: 108
|
Цитата:
Тебе чего сделать-то надо? Найти айтем, на котором кликнули правой кнопкой? Так спроси у hwndList-а, вышли ему LB_GETCURSEL, он тебе вернет индекс выделенного на данный момент элемента. Это и будет индекс элемента, над которым была нажата правая кнопка мыши |
|
08.08.2012, 10:58 | #7 |
Пользователь
Регистрация: 08.11.2011
Сообщений: 46
|
Пока что у меня вообще не получалось выполнить действие при клике на выпавшем списке. Не было никакой реакции вообще. Удалось решить при помощи такого кода (нашла в инете и скорректировала под себя):
Код:
Код:
Спасибо всем, думаю, нужные ответы у меня есть |
08.08.2012, 11:50 | #8 | |
Форумчанин
Регистрация: 01.06.2009
Сообщений: 108
|
Цитата:
|
|
08.08.2012, 12:05 | #9 |
Пользователь
Регистрация: 08.11.2011
Сообщений: 46
|
Я имела в виду, что клик не ловился раньше, до того, как я обратилась сюда с вопросом. В приведённом выше коде я толком ещё не разобралась по разным причинам - недостаток знаний, недостаток времени (аудит приехал), ну и то, что программирование, в общем-то, не есть моя основная работа. Пока по мере возможности буду проверять всё, что удалось по теме найти, чтоб возможные подводные камни найти и обойти. За помощь большое спасибо!
|
10.05.2013, 13:40 | #10 |
Новичок
Джуниор
Регистрация: 12.03.2013
Сообщений: 1
|
Спасибо за хороший пример, очень помог.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
C# Работа ПРАВОЙ кнопкой мыши | back1919 | Помощь студентам | 0 | 04.11.2010 15:18 |
На рабочем столе нельзя правой кнопкой мыши создать новый файл тхт | Kapitann | Операционные системы общие вопросы | 10 | 09.08.2010 15:49 |
Выделение ячейки в DBGrid правой кнопкой мыши | RIO | БД в Delphi | 2 | 20.08.2009 17:53 |
Косяки с правой кнопкой мыши | joker | Общие вопросы Delphi | 4 | 12.11.2008 13:25 |
Как работать с правой кнопкой мыши? | ZeRRon | Помощь студентам | 4 | 28.12.2007 18:45 |