canal visual basic .net

Recursos Visual Basic.NET, VB.NET, Manuales de programación, Tutoriales, Foros de programación, Comunidad de programadores

Usuarios activos:  67

Foros de programación, recursos, tutoriales, sistemas operativos...

Bienvenido a la zona de foros. Participa en alguno de nuestros foros: Foros de visual basic, foros de visual basic.net foros de Crystal reports, programas gratis, foros de C++ - C# , foros de Java, foros de PHP, foros de ASP.net. Seguro que hay un foro que te servirá de gran utilidad y si no lo encuentras avísanos y crearemos uno nuevo.
Resultados 1 al 4 de 4
  1. #1
    Avatar de Tino
    Tino está desconectado Senior Member Avanzad@
    Fecha de ingreso
    13 jun, 06
    Ubicación
    Mexico
    Mensajes
    248

    Predeterminado


    Hola espero que esten bien.

    Como puedo desaparecer el Popup Menu cuando el mouse se encuentre fuera del boton q lo muestra, automaticamente, no al dar un click, se puede hacer con el API sendmessenger?, espero me haya explicado.

    espero me puedan ayudar.
    Agradezco de Antemano cualquier comentario



  2. #2
    Avatar de Leandro
    Leandro está desconectado Moderador Veteran@
    Fecha de ingreso
    08 dic, 05
    Mensajes
    543

    Predeterminado

    hola fijate algo asi si te sirve
    Código:
    Option Explicit
    Private Declare Function EndMenu Lib "user32.dll" () As Long
    Private Declare Function GetCursorPos Lib "user32.dll" (ByRef lpPoint As POINTAPI) As Long
    Private Declare Function WindowFromPoint Lib "user32.dll" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
    Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
    
    Private Type POINTAPI
     x As Long
     y As Long
    End Type
    
    Dim hButton As Long
    
    Private Sub Command1_Click()
    Timer1.Interval = 100
    hButton = Command1.hwnd
    PopupMenu mimenu, , Command1.Left, Command1.Top + Command1.Height
    End Sub
    
    Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    Timer1.Interval = 100
    PopupMenu mimenu
    End Sub
    
    
    
    
    Private Sub Timer1_Timer()
     Dim PT As POINTAPI
     Dim hwnd As Long
     GetCursorPos PT
     hwnd = WindowFromPoint(PT.x, PT.y)
     
     If GetWinClassName(hwnd) <> "#32768" And hwnd <> hButton Then
     EndMenu
     Timer1.Interval = 0
     End If
    End Sub
    
    Public Function GetWinClassName(hwnd As Long) As String
     Dim sClass As String, ret&
     sClass = Space$(128)
     ret = GetClassName(hwnd, ByVal sClass, 128)
     GetWinClassName = Left$(sClass, ret)
    End Function
    Saludos


  3. #3
    Avatar de Tino
    Tino está desconectado Senior Member Avanzad@
    Fecha de ingreso
    13 jun, 06
    Ubicación
    Mexico
    Mensajes
    248

    Predeterminado

    Hola.
    Gracias eso es lo que buscaba, mil gracias.

    yo intente hacelo igual con el GetCursorpos, mouse_event y el GetRec... no recuerdo que, pero el problema era que si me salia del boton al menu si pasaba el area del boton en el menu mas bien, se desaparacia, pero si eso es lo que queria hacer gracias.

    una pregunta para que es esto?
    "#32768"

    que lo tienes en este if:

    If GetWinClassName(hwnd) <> "#32768" And hwnd <> hButton Then
    EndMenu
    Timer1.Interval = 0
    End If

    gracias de nuevo



  4. #4
    Avatar de Leandro
    Leandro está desconectado Moderador Veteran@
    Fecha de ingreso
    08 dic, 05
    Mensajes
    543

    Predeterminado

    Hola, #32768 es el classname de los menu (almenos en xp y en Vista) no estoy muy seguro en 98.
    eso simpre lo podes averiguar con algun tipo de spy, no tengo la direccion de ninguno para pasarte pero en la web hay muchos.

    Saludos


Temas similares

  1. menu boton derecho al pulsar en una imagen
    Por lena en el foro Visual Basic 6.0
    Respuestas: 3
    Último mensaje: 27/11/2008, 05:43
  2. Menu contextual boton derecho
    Por dasilva en el foro Visual Basic .NET
    Respuestas: 2
    Último mensaje: 02/06/2008, 02:59
  3. no se muestra menu popup
    Por arcohol81 en el foro Visual Basic 6.0
    Respuestas: 4
    Último mensaje: 03/09/2007, 15:41
  4. al pulsar botón ¿el foco pasa al botón?
    Por black_flowers en el foro Visual Basic .NET
    Respuestas: 2
    Último mensaje: 01/05/2007, 12:43
  5. menu popup
    Por seba123neo en el foro Visual Basic 6.0
    Respuestas: 1
    Último mensaje: 14/11/2006, 10:57

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  
Visual Studio .VisualBasic.net .ADO.NET .ASP.NET .Framework .Crystal report
[Visual Basic .NET · Información legal · Condiciones de uso · Publicidad · Contacto · RSS novedades Foro · Inicio]
Un sitio web de Internelia (Ontecnia) © Copyright 2013 canalvisualbasic.net. Todos los derechos reservados