![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 08.11.2011
Сообщений: 46
|
![]()
Добрый день. Есть необходимость выполнять некоторые действия, кликнув правой кнопкой мыши по элементу выпавшего списка ComboBox'а. Что-то никак не могу ни сама сообразить, ни найти в инете подсказку, может, неправильно формулирую запрос. Событие OnClick замечательно отлавливает левую и никак не реагирует на правую. Подскажите пожалуйста, как можно поймать этот самый "правый" клик?
Заранее спасибо. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 01.06.2009
Сообщений: 108
|
![]()
Получай хендл выпадающего списка в OnDropDown через GetComboboxInfo, подменяй его оконную процедуру своей, в которой лови WM_RBUTTON<...>, и делай с ним всё, что нужно. По закрытию выпадающего списка - восстанавливай оконную функцию (насколько я помню, при открытии списка он может создаваться заново, поэтому нельзя сделать один раз его сабклассинг и постоянно с ним работать, есть вероятность нарваться на проблемы). Вот примерный код:
Код:
Код:
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 08.11.2011
Сообщений: 46
|
![]()
Спасибо, буду разбираться.
P.S. Офф - кошка шикарная, давно таких не видела ![]() |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,206
|
![]()
Именно на самом компоненте? Если нет, то ответ дан выше. Если да, то у каждого компонента есть свойство OnContextPopup, которое срабатывает как раз, когда на компоненте нажали правую кнопку мыши.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 08.11.2011
Сообщений: 46
|
![]()
OnContextPopup у меня срабатывает почему-то только при клике на самом компоненте и не срабатывает на выпавшем списке. Пробовала определять координаты выпавшего списка, преобразовывать в оконные и вызывать выполнение нужных функций при клике в заданном прямоугольнике - не работает. Возможно, просто не туда привязываю вызов.
|
![]() |
![]() |
![]() |
#6 | |
Форумчанин
Регистрация: 01.06.2009
Сообщений: 108
|
![]() Цитата:
Тебе чего сделать-то надо? Найти айтем, на котором кликнули правой кнопкой? Так спроси у hwndList-а, вышли ему LB_GETCURSEL, он тебе вернет индекс выделенного на данный момент элемента. Это и будет индекс элемента, над которым была нажата правая кнопка мыши ![]() |
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 08.11.2011
Сообщений: 46
|
![]()
Пока что у меня вообще не получалось выполнить действие при клике на выпавшем списке. Не было никакой реакции вообще. Удалось решить при помощи такого кода (нашла в инете и скорректировала под себя):
Код:
Код:
![]() Спасибо всем, думаю, нужные ответы у меня есть ![]() |
![]() |
![]() |
![]() |
#8 | |
Форумчанин
Регистрация: 01.06.2009
Сообщений: 108
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 08.11.2011
Сообщений: 46
|
![]()
Я имела в виду, что клик не ловился раньше, до того, как я обратилась сюда с вопросом. В приведённом выше коде я толком ещё не разобралась по разным причинам - недостаток знаний, недостаток времени (аудит приехал), ну и то, что программирование, в общем-то, не есть моя основная работа. Пока по мере возможности буду проверять всё, что удалось по теме найти, чтоб возможные подводные камни найти и обойти. За помощь большое спасибо!
|
![]() |
![]() |
![]() |
#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 |