![]() |
Запрет нажатия на правую кнопку мыши
Как запретить пользователю нажимать правую кнопу мыши?
т.е. чтобы при нажатии на неё не происходило ничего на форме, да если на ней лежит какой нить ActiveX компонент со своим popup menu C++ Builder или Delphi |
Xcode
Ну, например, поставить хук на мышь. Хотя это немного излишне. Можно, например, в цикле GetMessage/DispatchMessage фильтровать соответствующий события, то есть не пропускать их в DispatchMessage. Только вот не уверен, что в Delphi или Builder'е такое можно; не пользуюсь ими ибо. |
Цитата:
Цитата:
|
допустим поставил я хук на мыш
hMouseHook=SetWindowsHookEx(WH_MOUSE,(HOOKPROC)(pMouseHook), hLib,0); сообщения нажатия на правую кнопку перехватил, а как запретить? желательно на пальцах... |
Xcode
Цитата:
Цитата:
Цитата:
Цитата:
|
ivank
Цитата:
Цитата:
|
Дам ссылки на книжки, которые я сейчас (вперемешку) читаю. Не столько про языки, сколько про то, что на 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 лекций. |
сенькс... на досуге прочту..
|
чет ничего не понимаю.... получилась у меня громозкая конструкция:
создал DLL с функцией обработки сообщений мышки: LRESULT CALLBACK MouseHook(int nCode,WPARAM wParam,LPARAM lParam) в самой программе: hMouseHook=SetWindowsHookEx(WH_MOUSE,(HOOKPROC)(pMouseHook), hLib,0); все работает, сообщени передаются, обрабатываются, но не блокируются.... почему... может быть потому, что я хочу запретить нажатие правой кнопки не на самой форме, а на находящемся на нем TShockwaveFlash??? |
А что, если в DispatchMessage не пускать сообщение WM_RBUTTONDOWN? В борланде вроде TAppication::OnMessage есть
|
пробЫвал... создаю функцию(или что это там=))
void __fastcall TMainf::ME(tagMSG &Msg, bool &Handled) { if(Msg.message==WM_RBUTTONDOWN) { DispatchMessage(&Msg); } } В конструкторе окна переопределяю событие Application->OnMessage=ME; опять таки сообщение отлавливается, но не блокируется... как контекстное меню по правому клику выпадало, так и продолжает выподать... |
Время: 08:43. |
Время: 08:43.
© OSzone.net 2001-