Capturar mensajes

Capturar mensajes

Postby antolin » Tue Feb 26, 2013 12:58 pm

Hola.

Sabe alguiuen como capturar los mensajes:

WM_ENTERSIZEMODE 0x0231
WM_WXITSIZEMODE 0x9232

Necesito capturarlos desde una MDICHILD para controlar cuando refrescarla tras cambiarla de tamaño. Creo que sería interesante para mucha gente por lo que he leido en el foro.
Peaaaaaso de foro...
antolin
 
Posts: 492
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Re: Capturar mensajes

Postby karinha » Tue Feb 26, 2013 1:20 pm

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7343
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Capturar mensajes

Postby antolin » Wed Feb 27, 2013 8:58 am

Hay más comands interesantes no incluidos en mi version de FWH (2007):

WM_WINDOWPOSCHANGING 0x0046
WM_WINDOWPOSCHANGED 0x0047
WM_SIZING 0x0214

No se si en otras versiones los han tenido en cuanta.
Peaaaaaso de foro...
antolin
 
Posts: 492
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Re: Capturar mensajes

Postby antolin » Wed Feb 27, 2013 9:00 am

Supongo que estos mensajes se pueden capturar desde el método HANDLEEVENT de la clase TWindow, pero preguntaba si no hubiera otra forma de hacerlo sin tener que modificar esa clase.
Peaaaaaso de foro...
antolin
 
Posts: 492
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Re: Capturar mensajes

Postby Antonio Linares » Wed Feb 27, 2013 9:07 am

Antolin,

La forma correcta sería heredar una nueva clase a partir de TWindow e implementar su Método HandleEvent() en donde se atienda a esos mensajes.

Nosotros podriamos usar un codeblock y evaluarlo para cada mensaje de Windows, pero decidimos no hacerlo al entender que enlenteceria mucho la aplicación ya que constantemente se generan muchísimos mensajes de Windows.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41401
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Capturar mensajes

Postby antolin » Wed Feb 27, 2013 10:00 am

Gracias Antonio. Efectivamente modificando la TWindow no va, pero modificando la MDICHILD SI.

Ya sé cuano he termindado de redimensionar la pantalla para refrescar los controles. Ahora voy a ver si averiguo que mensaje recibe cuando le doy al boton "Restaurar" de la Barra de Titulos.

Gracias otr avez.
Peaaaaaso de foro...
antolin
 
Posts: 492
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Re: Capturar mensajes

Postby antolin » Wed Feb 27, 2013 10:16 am

OK averiguado es: WM_SIZE 0x0005

Si WParam = 0 la pantalla ha sido restaurada (ni maximizada ni minimizada).
Si WParam = 1 la pantalla ha sido minimizada.
Si WParam = 2 la pantalla ha sido maximizada.
Si WParam = 3 (para pop_ups) cuando otra pantalla ha sido restaurada.
Si WParam = 4 (para pop_ups) cuando otra pantalla ha sido maximizada.

LParam trae las nuevas dimensiones del area de clientes. La parte LOW trae el Width y la parte HIGH el HEIGHT. A ver como las separo ahora...
Peaaaaaso de foro...
antolin
 
Posts: 492
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Re: Capturar mensajes

Postby Antonio Linares » Wed Feb 27, 2013 12:07 pm

Puedes usar las funciones nLoWord( nLParam ) y nHiWord( nLParam ) de FWH
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41401
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Capturar mensajes

Postby antolin » Wed Feb 27, 2013 12:18 pm

Gracias Antonio.

Lo he resuelto con nHeight := int(LParam/65536) y nWidth := LParam-(nHeight*65536) pero utilizaré las tuyas que son más racionales.
Peaaaaaso de foro...
antolin
 
Posts: 492
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 46 guests