Visual Basic - Eliminar menu por defecto de caja de texto

Life is soft - evento anual de software empresarial
 
Vista:

Eliminar menu por defecto de caja de texto

Publicado por Alejandro (9 intervenciones) el 09/06/2004 11:25:09
Buenos días, deseo eliminar el menú por defecto que proporcionan las cajas de texto, para evitar las opciones que da dicho menú.

Saludos Alejandro.
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

RE:Eliminar menu por defecto de caja de texto

Publicado por Cecilia Colalongo (3116 intervenciones) el 09/06/2004 14:41:44
No hay una propiedad o un método directo, lo puedes hacer con API's de Windows, fijate con ésto:

Public Const WM_CUT = &H300
Public Const WM_COPY = &H301
Public Const WM_PASTE = &H302
Public Const WM_CLEAR = &H303
Public Const GWL_WNDPROC = -4
Public Const WM_RBUTTONUP = &H205

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 Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Public lpPrevWndProc As Long
Private lngHWnd As Long

Public Sub Hook(hWnd As Long)
lngHWnd = hWnd
lpPrevWndProc = SetWindowLong(lngHWnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub

Public Sub UnHook()
Dim lngReturnValue As Long
lngReturnValue = SetWindowLong(lngHWnd, GWL_WNDPROC, lpPrevWndProc)
End Sub

Public Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Select Case uMsg
Case WM_CUT
Case WM_COPY
Case WM_PASTE
Case WM_CLEAR
Case WM_RBUTTONUP
Case Else
WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam)
End Select
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:Eliminar menu por defecto de caja de texto

Publicado por Alejandro (9 intervenciones) el 09/06/2004 14:49:43
Gracias Cecilia, pero me gustaria que me dijeras donde pongo este código. Se que parte de él ó no se si todo deberá de ir en un modulo pero como invoco a las funciones. Te agradeceria que me ayudaras un poquito mas.

Gracias por todo.
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:Eliminar menu por defecto de caja de texto

Publicado por Cecilia Colalongo (3116 intervenciones) el 09/06/2004 20:46:19
El código lo puedes colocar todo en un módulo y luego en cada textbox en el evento GotFocus haces:

Hook Text.hwnd

Y en el LostFocus:

UnHook

Sino lo puedes hacer en un control a partir de un TextBox.
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:Eliminar menu por defecto de caja de texto

Publicado por Alejandro (9 intervenciones) el 10/06/2004 12:43:37
Hola Cecilia acabo de poner en un módulo el código y luego en los eventos GotFocus y LostFocus y sigue apareciendo el menú. Tengo definida una matriz de controles pero he incluido una caja de texto y tampoco funciona. Te agradecería cualquier ayuda que me pudieras brindar.
Saludos Alejandro
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:Eliminar menu por defecto de caja de texto

Publicado por Cecilia Colalongo (3116 intervenciones) el 10/06/2004 13:52:28
A mi me funciona sin problemas, puedes intentar colocar el código en el evento Load y Unload del Form respectivamente a ver que sucede.

Si revisas en http://www.vb-helper.com/howto_remove_context_menu.html tienes un ejemplo y es casi el mismo código.
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