FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour enventos del mouse en MDI
Posts: 203
Joined: Tue Oct 11, 2005 02:17 PM
enventos del mouse en MDI
Posted: Thu Nov 10, 2016 04:34 PM
Alguien me puede aclarar porque no me funciona el doble click en una ventana de estilo MDI

El codigo lo se sacado del mensaje

Mouse events on MDI-frame ?

Code (fw): Select all Collapse
STATIC oWnd

Function Main()

    DEFINE WINDOW oWnd TITLE "Testing the Mouse" MDI // ===>>> MDI needed !!!
    oWnd:oWndClient:bLClicked = { | nRow, nCol, nFlags | oWnd:oWndClient:Say( 2, 2, "LButtonDown" ) }
    oWnd:oWndClient:bLButtonUp = { | nRow, nCol, nFlags | oWnd:oWndClient:Say( 2, 2, "LButtonUp " ) }
    oWnd:oWndClient:bMButtonDown = { | nRow, nCol, nFlags | oWnd:oWndClient:Say( 2, 2, "MButtonDown" ) }
    oWnd:oWndClient:bMButtonUp = { | nRow, nCol, nFlags | oWnd:oWndClient:Say( 2, 2, "MButtonUp " ) }
    oWnd:oWndClient:bRClicked = { | nRow, nCol, nFlags | oWnd:oWndClient:Say( 2, 2, "RButtonDown" ) }
    oWnd:oWndClient:bRButtonUp = { | nRow, nCol, nFlags | oWnd:oWndClient:Say( 2, 2, "RButtonUp " ) }
    oWnd:oWndClient:bMMoved = { | nRow, nCol, nFlags | MsgBeep() }
    oWnd:oWndClient:bLDblClick = { | nRow, nCol, nFlags | MsgInfo( "Left Doble Click" ) }

    SET MESSAGE OF oWnd TO "Press any mouse button" CENTERED

    ACTIVATE WINDOW oWnd

    return nil


gracias
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: enventos del mouse en MDI
Posted: Thu Nov 10, 2016 08:15 PM

He construido tu ejemplo y lo he inspeccionado usando Spy++ de Microsoft

y para mi sorpresa, resulta que Windows no envía el mensaje doble click a la ventana cliente de una ventana MDI

asi que esa es la razón de que no te funcione.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: enventos del mouse en MDI
Posted: Thu Nov 10, 2016 08:20 PM

Como la ventana cliente usa una clase predefinida de Windows, "MDICLIENT", la única solución
que se me ocurre seria intentar modificar esa clase usando SetWindowLong() y añadirle el estilo CS_DBLCLKS

#define CS_DBLCLKS 0x0008

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 203
Joined: Tue Oct 11, 2005 02:17 PM
Re: enventos del mouse en MDI
Posted: Fri Nov 11, 2016 03:45 PM

Gracias por la respuesta,
Voy a ver como lo soluciono, aunque no es importante, simplemente es que para acceder a las opciones de mantenimiento una apliación no MDI utilizaba un doble click.
Un saludo

Continue the discussion