Sección de códigos , trucos y ejemplos para visual basic
<Volver> - Anterior - Siguiente
Contenido
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.
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
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
Buscar en Recursos vb
Recursos visual basic - Buscar - Privacidad - Copyright © 2005 - 2009 - www.recursosvisualbasic.com.ar