ActiveX - Como hacer que aparezca una ventana popupal mover

 
Vista:

Como hacer que aparezca una ventana popupal mover

Publicado por Elena (1 intervención) el 08/08/2001 11:51:00
he realizado un ActiveX que dibuja zonas calientes, y quisiera que al mover el rat'on sobre ellas me apareciera un ventana de ayuda sensible al contexto, como se hace.
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
Imágen de perfil de Alejandro Andrade

Como hacer que aparezca una ventana popupal mover

Publicado por Alejandro Andrade (213 intervenciones) el 28/03/2023 19:44:36
Para mostrar una ventana emergente o popup sensible al contexto en un ActiveX cuando el usuario mueve el ratón sobre una zona caliente, puedes utilizar el evento MouseMove del control para detectar cuando el cursor del mouse está encima de la zona caliente.

Luego, en el controlador de eventos MouseMove, puedes mostrar una ventana emergente utilizando la función CreateWindowEx de la API de Windows. Para hacer que la ventana emergente siga al cursor del mouse mientras se mueve sobre la zona caliente, debes capturar las coordenadas del cursor y usarlas para posicionar la ventana emergente en la pantalla.

Aquí hay un ejemplo básico de cómo podrías implementar esto en tu código de ActiveX en Visual Basic 6.0:

1
2
3
4
5
6
7
8
9
10
11
12
Private Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" (ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
 
Private Sub UserControl_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
    ' Aquí detectamos si el cursor del mouse está encima de la zona caliente
    If x > 50 And x < 150 And y > 50 And y < 150 Then
        ' Aquí creamos y mostramos la ventana emergente
        Dim hwnd As Long
        hwnd = CreateWindowEx(0, "STATIC", "Mensaje de ayuda", WS_POPUP Or WS_BORDER Or SS_CENTER, x, y, 150, 50, UserControl.hWnd, 0, App.hInstance, ByVal 0&)
        ShowWindow hwnd, SW_SHOWNA
    End If
End Sub

En este ejemplo, estamos creando una ventana emergente de tipo "STATIC" que muestra el mensaje "Mensaje de ayuda" en el centro. La posición de la ventana emergente se establece en las coordenadas x e y del cursor del mouse, y su tamaño es de 150 píxeles de ancho y 50 píxeles de alto. La ventana emergente se muestra utilizando la función ShowWindow con el parámetro SW_SHOWNA.

Ten en cuenta que este es solo un ejemplo básico y que deberás adaptarlo a tus necesidades específicas. También es importante tener en cuenta las consideraciones de seguridad al mostrar ventanas emergentes en un ActiveX.
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