Visual Basic - nadie supo como quitar menu contextual?

Life is soft - evento anual de software empresarial
 
Vista:

nadie supo como quitar menu contextual?

Publicado por candres (13 intervenciones) el 25/05/2005 00:29:11
saludos.
¿como puedo hacer para que un textbox no muestre el menu contextual de w95 (deshacer, cortar, copiar, pegar,etc) al hacer clic derecho con el ratón? estoy trabajando vb4 w95.
gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 14
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

RE:nadie supo como quitar menu contextual?

Publicado por SuNcO (599 intervenciones) el 07/06/2005 22:28:44
Una vez vi un codigo muy sencillo, de 1 linea para no mostrar el menu pero no recuerdo donde.. pero aqui encontre otro aunque es algo largo pero pues funciona

----- En el formulario :

Private mbCapturado As Boolean

Private Sub Form_Load()
gHW = Text1.hWnd
Hook
mbCapturado = True
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If mbCapturado Then Unhook
End Sub

----- En un modulo :

Public Declare Function SetWindowLong Lib "user32" Alias _
"SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long

Public Declare Function CallWindowProc Lib "user32" _
Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, _
ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, _
ByVal lParam As Long) As Long

Public Const GWL_WNDPROC = (-4)

Public Const WM_CONTEXTMENU = &H7B

Global lpPrevWndProc As Long
Global gHW As Long

Public Sub Hook()
lpPrevWndProc = SetWindowLong(gHW, GWL_WNDPROC, _
AddressOf gWindowProc)
End Sub

Public Sub Unhook()
Dim temp As Long
temp = SetWindowLong(gHW, GWL_WNDPROC, lpPrevWndProc)
End Sub

Public Function gWindowProc(ByVal hWnd As Long, ByVal Msg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
If Msg = WM_CONTEXTMENU Then
Debug.Print "Interceptado WM_CONTEXTMENU ( " & Now & ")"
gWindowProc = True
Else ' Send all other messages to the default message handler
gWindowProc = CallWindowProc(lpPrevWndProc, hWnd, Msg, wParam, _
lParam)
End If
End Function


Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:nadie supo como quitar menu contextual?

Publicado por candres (13 intervenciones) el 08/06/2005 05:21:35
gracias, pero no me reconoce

AddressOf gWindowProc

en la declaración del sub hook.
trabajo en vb4.32. ¿que hago?
saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 14
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

RE:nadie supo como quitar menu contextual?

Publicado por SuNcO (599 intervenciones) el 08/06/2005 19:33:24
Te tengo 2 respuestas

1 - Ni idea

2 - Actualiza tu vb al menos a vb6 ya que eso de subclasificar (hook) es algo avanzado y quiza el vb4 aun no podia hacer eso
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:nadie supo como quitar menu contextual?

Publicado por candres (13 intervenciones) el 09/06/2005 22:51:34
gracias.
no todo en la vida es facil. lo que pasa es que estoy haciendo unprograma para unos equipos viejos que tienen w95.
de todos modos fuiste muy amable. Dios te bendiga y te de mas sabiduria de la que ahora tienes y puedas seguir ayudando a los demás.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar