Resumen Anular el PopUp Menu en un textbox   (2 mensajes )

Hola Alagones !!

>Como puedo anular la ventana que sale al pulsar el botón derecho del Mouse,
>durante la ejecución de un programa realizado en visual basic 5.0 y sobre
>una caja de texto?

Acabo de recibir un truco que seguramente es lo que estás buscando. Para
anular, o utilizar tu propio menú, puedes colocar el siguiente código en el
evento MouseDown del TextBox:
*******************************************************************
'Truco enviado por CMD Software, support@cmdsoftware.softnet.co.uk
'Me llegó a través de ZD-TIPS, suscribirse gratuitamente en
http://www.zdtips.com
*******************************************************************
If Button = vbRightButton Then
Text1.Enabled = False
Text1.Enabled = True
Text1.SetFocus
PopUpMenu Menu1
End If
*******************************************************************
Saludos y mucha suerte.

Punto y fuera. YSEQS

Daniel Pierini
ARGENTINA Computación
ac@santafe.com.ar

Ahi va un articulo sacado de la KB

Suprimir el Pop-Up Menu por defecto usando uno propio

---------------------------------------------------------------------
La información de este artículo se aplica a :

- Microsoft Visual Basic Learning, Professional, y Enterprise
  para Windows, versiones 5.0, 6.0
---------------------------------------------------------------------

SUMARIO
=======

Algunos controles de Visual Basic, como el textBox, tienen un menú PopUp por defecto que se muestra automáticamente cuando pinchas con el botón derecho sobre el mismo. Este artículo muestra una manera de deshabilitar este menú por defecto para no sacar ninguno (no dice cómo y por las pruebas que pude hacer si no pones uno tuyo sale el de por defecto) o sacar uno propio.

MAS INFORMACION
===============

Cuando haces click con el botón derecho sobre un TextBox se muestra su menú por defecto. Visual Basic no tiene ninguna propiedad ni ningún otro mecanismo para evitar este comportamiento. De todas formas, estableciendo la propiedad Enabled del control a False se evita que aparezca el menú, aunque el usuario puede ver que el control está deshabilitado.

Una manera de evitar esto es usar la función del API LockWindowUpdate junto con la propiedad Enabled. La función LockWindowUpdate deshabilita y habilita el repintado de la ventana especificada. Después de completar la operación ponemos la propiedad Enabled del control de nuevo a True y llamamos a LockWindowUpdate por segunda vez para continuar el pintado del control.

Ejemplo
-------

1. Comenzar un nuevo proyecto estandard en Visual Basic. Se crea Form1 por defecto.

2. Añadir un TextBox a Form1.

3. Seleccionar el Editor de Menús del menú Herramientas y crear un menú llamado mnuPopUp en Form1. Deseleccionar el CheckBox Visible y añadir elementos como los siguientes:

     File
        New
        Open

4. Añadir el siguiente código en la ventana de código de Form1:

      Private Declare Function LockWindowUpdate Lib "user32" _
         (ByVal hwndLock As Long) As Long

      Private Sub mnuOne_Click()
         Text1.Text = "Se seleccionó el Menú Uno"
      End Sub

      Private Sub mnuTwo_Click()
         Text1.Text = "Se seleccionó el Menú Dos"
      End Sub

      Private Sub Text1_MouseDown(Button As Integer, Shift As Integer,_
         X As Single, Y As Single)

         If Button = vbRightButton Then
         ' Evitar el texto gris bloqueando las actualizaciones
            LockWindowUpdate Text1.hWnd

            ' Un textos "disabled" no saca menú contextual
            Text1.Enabled = False

            ' Dar tiempo a la línea anterior a ejecutarse
            DoEvents

            ' Sacar nuestro propio menú contextual
            PopupMenu mnuPopup

            ' Poner Enable el control de nuevo
            Text1.Enabled = True

            ' Desbloquear las actualizaciones
            LockWindowUpdate 0&
         End If
      End Sub

5. Grabar y ejecutar el proyecto.

6. Pinchar con el botón derecho sobre Text1. Sólo se muestra nuestro propio menú contextual. El por defecto no se muestra.

---------------------------------------------------------------------
 Alberto Rodríguez Calvo (cittarc@usc.es)
 Centro de Innovación e Transferencia de Tecnoloxia (CITT)
 Universidade de Santiago de Compostela
 Páxina Web do CITT: http://www.usc.es/citt

 Avda. Ciencias s/n, Campus Sur Tfno (9)81 599800
 15706 Santiago de Compostela (A Coruña) (9)81 563100 Ext 14380
 España Fax (9)81 599309
---------------------------------------------------------------------

-----Mensaje original-----
De: Pablo Antonio Martinez Morillas <pmartimor@larural.es>
Para: Lista VB-ESP <vb-esp@ccc.uba.ar>
Fecha: viernes 11 de septiembre de 1998 0:40
Asunto: (VB-ESP) anular el pop menu en un textbox


queridos listeros:
desearía saber si hay alguna forma de anular el popmenu que aparece al
pulsar el botón izquierdo del ratón en un textbox. He probado con una
rutina que he encotrado por internet pero no me funciona, así que si sois tan
amables me poneis un ejemplillo pues soy algo torpe :)
un cordial saludo a todos.




Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com