Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Запрет нажатия на правую кнопку мыши

Ответить
Настройки темы
Запрет нажатия на правую кнопку мыши

Аватара для XCodeR

Ветеран


Сообщения: 878
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


Как запретить пользователю нажимать правую кнопу мыши?
т.е. чтобы при нажатии на неё не происходило ничего на форме, да если на ней лежит какой нить ActiveX компонент со своим popup menu
C++ Builder или Delphi

Отправлено: 09:55, 08-08-2005

 

редкий гость


Сообщения: 1696
Благодарности: 44

Профиль | Сайт | Отправить PM | Цитировать


Xcode
Ну, например, поставить хук на мышь. Хотя это немного излишне.

Можно, например, в цикле GetMessage/DispatchMessage фильтровать соответствующий события, то есть не пропускать их в DispatchMessage. Только вот не уверен, что в Delphi или Builder'е такое можно; не пользуюсь ими ибо.

-------
http://ivank.ru


Отправлено: 13:41, 08-08-2005 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для XCodeR

Ветеран


Сообщения: 878
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


Цитата:
не пользуюсь ими ибо
а чем пользуетесь?
Цитата:
GetMessage/DispatchMessage
это же чистый WinAPI - должно прокатить...

Отправлено: 09:50, 09-08-2005 | #3


Аватара для XCodeR

Ветеран


Сообщения: 878
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


допустим поставил я хук на мыш
hMouseHook=SetWindowsHookEx(WH_MOUSE,(HOOKPROC)(pMouseHook), hLib,0);

сообщения нажатия на правую кнопку перехватил, а как запретить? желательно на пальцах...

Отправлено: 10:48, 09-08-2005 | #4


редкий гость


Сообщения: 1696
Благодарности: 44

Профиль | Сайт | Отправить PM | Цитировать


Xcode
Цитата:
допустим поставил я хук на мыш
hMouseHook=SetWindowsHookEx(WH_MOUSE,(HOOKPROC)(pMouseHook), hLib,0);

сообщения нажатия на правую кнопку перехватил, а как запретить? желательно на пальцах...
http://msdn.microsoft.com/library/de.../mouseproc.asp
Цитата:
If the hook procedure processed the message, it may return a nonzero value to prevent the system from passing the message to the target window procedure.
Т.е. определяешь с помощью GetWindowThreadProcessId, что окно, которому предназначено сообщение, принадлежит твоему процессу и не пропускаешь к нему сообщение, всего и делов.

Цитата:
GetMessage/DispatchMessage

это же чистый WinAPI - должно прокатить...
Проблема в том, что цикл обработки сообщений, скорее всего, спрятан в билдере где-то внутри. Хотя может и есть какие-то способы в него вмешаться. Но мне этот способ больше нравится, поскольку затрагивает только одно приложение, а не все, как в случае с хуком. И накладных расходов получается на порядок меньше.

Цитата:
а чем пользуетесь?
можно на ты. Я не такой старый и опытный, что бы мне выкали. На работе я пользуюсь gcc и wxWindows. Не на работе я на C++ сейчас не пишу, естьязыки поинтересней для изучения.

-------
http://ivank.ru


Отправлено: 12:34, 09-08-2005 | #5


Аватара для XCodeR

Ветеран


Сообщения: 878
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


ivank
Цитата:
Т.е. определяешь с помощью GetWindowThreadProcessId, что окно, которому предназначено сообщение, принадлежит твоему процессу и не пропускаешь к нему сообщение, всего и делов.
сейчас попробую...
Цитата:
естьязыки поинтересней для изучения.
к примеру?

Отправлено: 12:51, 09-08-2005 | #6


редкий гость


Сообщения: 1696
Благодарности: 44

Профиль | Сайт | Отправить PM | Цитировать


Дам ссылки на книжки, которые я сейчас (вперемешку) читаю. Не столько про языки, сколько про то, что на C++ свет клином не сошёлся.

http://mitpress.mit.edu/sicp/
http://www2.info.ucl.ac.be/people/PVR/book.html
http://caml.inria.fr/pub/docs/oreilly-book/
http://caml.inria.fr/pub/docs/u3-ocaml/

Дома я как правило пишу на Python'е и пытаюсь на O'Caml. После того как разберусь с камлом, на очереди ещё стоят Scheme/LISP, Haskell, Erlang и много других интересных языков с интересными концепциями.

Настоятельно рекомендую первые две книги в списке прочитать, очень интересно. Значительно расширяет кругозор. А к первой книге ещё можно и курс лекций, на котором она построена, скачать. Его видео-версию, 20 лекций.

-------
http://ivank.ru


Отправлено: 14:00, 09-08-2005 | #7

XCode2


Сообщения: n/a

Профиль | Цитировать


сенькс... на досуге прочту..

Отправлено: 15:45, 09-08-2005 | #8


Аватара для XCodeR

Ветеран


Сообщения: 878
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


чет ничего не понимаю.... получилась у меня громозкая конструкция:
создал DLL с функцией обработки сообщений мышки:
LRESULT CALLBACK MouseHook(int nCode,WPARAM wParam,LPARAM lParam)

в самой программе:
hMouseHook=SetWindowsHookEx(WH_MOUSE,(HOOKPROC)(pMouseHook), hLib,0);

все работает, сообщени передаются, обрабатываются, но не блокируются.... почему...

может быть потому, что я хочу запретить нажатие правой кнопки не на самой форме, а на находящемся на нем TShockwaveFlash???

Отправлено: 01:32, 10-08-2005 | #9

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


А что, если в DispatchMessage не пускать сообщение WM_RBUTTONDOWN? В борланде вроде TAppication::OnMessage есть

Отправлено: 13:51, 10-08-2005 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Запрет нажатия на правую кнопку мыши

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
После нажатия на кнопку Power копм запускается лишь на 2-3 секунды James Douglas Непонятные проблемы с Железом 23 10-12-2009 22:59
Как задействовать правую кнопку мыши? Evita Хочу все знать 8 15-06-2005 07:18
активизировать третью кнопку мыши samirka Microsoft Windows 95/98/Me (архив) 3 30-07-2003 12:32
Двойные нажатия клавиш ivank Железо в Linux 8 09-06-2003 09:24




 
Переход