Sección de códigos , trucos y ejemplos para visual basic


21 - Deshabilitar el menú contextual en TextBox y Combos

<Volver> - Anterior - Siguiente



 

Contenido

 

 

 

 

 

 


Utilizando un Hook

Este ejemplo utiliza un Hook para interceptar los mensajes de Windows que llegan a nuestra aplicación, y de esta forma poder deshabilitar el menú contextual de un TextBox al hacer click derecho ( El menú de copiar , pegar, seleccionar todo )

Para inicializar el hook se debe llamar a la función Hook y para removerlo o finalizarlo , la función UnHook.

A los dos procedimientos, se le debe pasar como parámetro el Hwnd del control Textbox. por ejemplo

Deshabilita:

Call Hook (Text1.Hwnd)

Habilita

Call UnHook (Text1.hwnd)

En este caso el Hook o procedimiento que procesa los mensajes, debe estar obligatoriamente declarado en un modulo .Bas

Importante: no se puede detener la ejecución del programa para depurarlo, por ejemplo con un punto de interrupción en el procedimiento ( en el Hook ), ya que el programa se colgaría y se cerraría hasta el propio IDE del Visual basic. También puede ser conveniente, deshabilitar el hook, hasta que la aplicación esté libre de errores, ya que al producirse uno se cerrará el visual basic, y podremos haber perdido los cambios realizados en nuestro programa.

Ejemplo

Colocar un control Textbox llamado Text1 en el formulario

Código fuente en un módulo bas:

Código fuente en un formulario

Si quisieramos deshabilitar el menú contextual de todos los controles textbox que hay en el form, podemos hacerlo con un bucle For Each

Ejemplo

 


Sin Hook - Desplegando un menú en el evento MouseDown

Nota: Otra forma de poder realizar esto sin un Hook, es creando nuestro propio menú con el editor de Visual basic, y en el evento mouseDown del textbox, desplegamos un menú propio.

Por ejemplo suponiendo que el menú popUp se llama mnu_popUp

 

Otra forma de hacer esto es con el Api ReleaseCapture, y podés ver un ejemplo en el siguiente enlace : desplegar un menu popup propio en un textBox

 


En controles Combos

Ver ejemplo


Recursos vb6 - Enlaces Relacionados



Buscar en Recursos vb