Page 1 sur 1
Comment désactiver le bouton droit dans un webgadget[Résolu]
Publié : mer. 23/avr./2008 6:07
par Stefou
Salut à tous
J'utilise un webgadget et je ne voudrais pas voir apparaitre les menu accessible avec le bouton droit. Est ce que quelqu'un sait comment faire ?
Merci d'avance et bonne journée
Code : Tout sélectionner
If OpenWindow(0, 0, 0, 640, 480, "WebGadget Edit", #PB_Window_ScreenCentered|#PB_Window_SystemMenu)
If CreateGadgetList(WindowID(0))
WebGadget(0, 5, 5, 630, 340, "www.google.com")
Repeat
EventID = WaitWindowEvent()
Until EventID=#WM_CLOSE
EndIf
EndIf
Publié : mer. 23/avr./2008 16:56
par gnozal
Il y a peut-être plus élégant mais çà a l'air de fonctionner :
Code : Tout sélectionner
;
; Disable WebGadget RightClick [Using a hook]
;
Procedure DisableWebGadgetRightClick(nCode.l, wParam.l, lParam.l)
Protected Cursor.POINT, WindowRect.RECT
Shared WebGadgetHandle.l
If wParam = #WM_RBUTTONDOWN
If IsWindowVisible_(WebGadgetHandle)
GetCursorPos_(@Cursor)
GetWindowRect_(WebGadgetHandle, @WindowRect)
If PtInRect_(@WindowRect, Cursor\x, Cursor\y)
ProcedureReturn #True
EndIf
EndIf
EndIf
ProcedureReturn #False
EndProcedure
;
If OpenWindow(0,0,0,600,600, "Disable WebGadget right-click", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(0))
WebGadgetHandle = WebGadget(1,0,0,600,400,"http://www.purebasic.com")
;
hHook = SetWindowsHookEx_(#WH_MOUSE, @DisableWebGadgetRightClick(), GetModuleHandle_(0), GetWindowThreadProcessId_(WindowID(0),0))
;
StringGadget(2, 0, 401, 600, 200, "Right-click still works here !")
EndIf
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver
UnhookWindowsHookEx_(hHook)
EndIf
Publié : mer. 23/avr./2008 18:24
par nico
En un peu plus élégant:
Code : Tout sélectionner
;
; Disable WebGadget RightClick [Using a hook]
;
Global hHook.l
ProcedureDLL DisableWebGadgetRightClick(nCode, wParam, lParam)
Static *MOUSESTRUCT.MOUSEHOOKSTRUCT,Name.s
If nCode < 0
ProcedureReturn CallNextHookEx_(hHook, nCode, wParam, lParam)
EndIf
*MOUSESTRUCT.MOUSEHOOKSTRUCT = lParam
Select wParam
Case #WM_RBUTTONUP,#WM_RBUTTONDOWN
Name=Space(100)
GetClassName_(*MOUSESTRUCT\hwnd,@Name,99)
If Name="Internet Explorer_Server"
ProcedureReturn 1
EndIf
EndSelect
ProcedureReturn CallNextHookEx_(hHook, nCode, wParam, lParam)
EndProcedure
;
If OpenWindow(0,0,0,600,600, "Disable WebGadget right-click", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(0))
WebGadgetHandle = WebGadget(1,0,0,600,400,"http://www.purebasic.com")
;
hHook = SetWindowsHookEx_(#WH_MOUSE, @DisableWebGadgetRightClick(), GetModuleHandle_(0), GetWindowThreadProcessId_(WindowID(0),0))
;
StringGadget(2, 0, 401, 600, 200, "Right-click still works here !")
EndIf
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver
UnhookWindowsHookEx_(hHook)
EndIf
Publié : mer. 23/avr./2008 19:21
par Stefou

Je vous aime les gars
Et en plus sa marche dans mon code aussi !

Publié : jeu. 24/avr./2008 10:58
par gnozal
nico a écrit :En un peu plus élégant
Oui, c'est mieux.
Une restriction cependant : çà ne fonctionnera pas avec #PB_Web_Mozilla.