Aplicación FiveWin con dos monitores

Aplicación FiveWin con dos monitores

Postby jlcapel » Thu Aug 31, 2006 9:12 am

Hola,

Ahora resulta que tengo dos monitores conectados a mi PC. Estos dos monitores actúan como extensión del escritorio.

Por lo que he visto, si abro el internet explorer en un monitor y maximizo, el internet explorer se maximiza en ese monitor. Si restauro, el internet explorer se restaura en ese monitor.

Sin embargo, en mi aplicación FWH, con una ventana principal, si ejecuto la aplicación y activo la ventana principal maximizada, al restaurar se extiende por los dos monitores!! Es decir, ocupa el ancho completo de los dos monitores.

¿Hay alguna forma de 'reconducir' este comportamiento?

Saludos y gracias,
José Luis Capel
User avatar
jlcapel
 
Posts: 229
Joined: Wed Oct 12, 2005 5:32 pm
Location: Valencia - España

Re: Aplicación FiveWin con dos monitores

Postby thefull » Mon Sep 04, 2006 4:06 pm

Jose luis, miralo por el lado positivo!!!
SIEMPRE PUEDES TENER MAS COLUMNAS EN EL BROWSE!!! jejejeje

Ni idea... ( lo siento no pude resistirme....jajajja ) :lol:
Saludos
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
User avatar
thefull
 
Posts: 729
Joined: Fri Oct 07, 2005 7:42 am
Location: Barcelona

Postby jlcapel » Mon Sep 04, 2006 5:57 pm

Rafa,

El caso es que tiene un comportamiento desconcertante. El botón 'Restaurar' hace que tome el ancho de dos pantallas (monitores) y el botón 'Maximizar' hace que tome el ancho del monitor principal. Lo cual hace que _siempre_ esté maximizado (sea en un monitor o en dos).

¿A alguien más le ocurre?

Antonio... ¿tu que opinas? ¿Se puede arreglar este comportamiento extraño?

Saludos,
José Luis Capel
User avatar
jlcapel
 
Posts: 229
Joined: Wed Oct 12, 2005 5:32 pm
Location: Valencia - España

Postby Antonio Linares » Mon Sep 04, 2006 10:50 pm

Jose Luis,

Si mueves una ventana de FWH en horizontal ¿ va apareciendo por el otro monitor ?

Este tema ya se abordó en otra ocasión, lo que ocurre es que encontramos diferencias de comportamiento según la tarjeta gráfica utilizada (y sus correspondientes drivers).
regards, saludos

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

Postby jlcapel » Tue Sep 05, 2006 6:28 am

Hola Antonio,

Si mueves una ventana de FWH en horizontal ¿ va apareciendo por el otro monitor ?



Mis aplicaciones las lanzo siempre maximizadas. En este caso, se visualizan siempre en el monitor principal. Y, como he explicado en dos mensajes más arriba, al estar maximizada y querer 'restaurar' coge el ancho de los dos monitores.

He probado con otras aplicaciones (Word, Excel, etc) y programas creados con otras herramientas de programación y veo en esos programas un comportamiento homogéneo: el botón 'restaurar' deja la ventana con un tamaño inferior al del monitor donde se encuentra. Y la tecla maximizar hace que tome el ancho del monitor donde se encuentra. En _ningún_caso_ toma el ancho de los dos monitores.

Saludos y gracias por tu tiempo para solucionar este inconveniente.
José Luis Capel
User avatar
jlcapel
 
Posts: 229
Joined: Wed Oct 12, 2005 5:32 pm
Location: Valencia - España

Postby Antonio Linares » Tue Sep 05, 2006 7:06 am

Jose Luis,

No me has contestado a la pregunta :-)

Si mueves una ventana de FWH en horizontal ¿ va apareciendo por el otro monitor ?

Otra cosa, has probado con otro lenguaje de programación (Delphi, VB) ?

FWH no hace nada en especial, sino el comportamiento por defecto de Windows. Si especificas la claúsula MAXIMIZED se llama a ShowWindow( ::hWnd, 3 ). Los parámetros de ShowWindow() pueden ser:

/*
* ShowWindow() Commands
*/
#define SW_HIDE 0
#define SW_SHOWNORMAL 1
#define SW_NORMAL 1
#define SW_SHOWMINIMIZED 2
#define SW_SHOWMAXIMIZED 3
#define SW_MAXIMIZE 3
#define SW_SHOWNOACTIVATE 4
#define SW_SHOW 5
#define SW_MINIMIZE 6
#define SW_SHOWMINNOACTIVE 7
#define SW_SHOWNA 8
#define SW_RESTORE 9
#define SW_SHOWDEFAULT 10
#define SW_FORCEMINIMIZE 11
#define SW_MAX 11

Quizá habría que probar con SW_SHOWDEFAULT
regards, saludos

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

Postby Antonio Linares » Tue Sep 05, 2006 7:12 am

Jose Luis,

El método Restore() de FWH hace esto:
METHOD Restore() INLINE ShowWindow( ::hWnd, SW_RESTORE )

Pero nosotros no lo llamamos cuando pulsas en restore. Ahi Windows hace el comportamiento por defecto y nos debe llegar una notificación al método Resize() que tampoco varía el tamaño.

Prueba a situar un botón en la ventana que llame a oWnd:Restore() y comprueba si se comporta igual que al pulsar el botón restore de Windows. Gracias
regards, saludos

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

Postby jlcapel » Tue Sep 05, 2006 9:04 am

Antonio,

En este video puedes ver el comportamiento que te describo.

http://hyperupload.com/download/02dc398c96/VentanasDeFiveWin.zip.html

Los dos monitores, en este video, se ven como uno solo. Entonces, la parte izquierda es el monitor principal y la derecha (donde aparece el navegador) es el monitor secundario.

Saludos,
José Luis Capel
User avatar
jlcapel
 
Posts: 229
Joined: Wed Oct 12, 2005 5:32 pm
Location: Valencia - España

Postby Antonio Linares » Tue Sep 05, 2006 10:23 am

José Luis,

gracias por el video.

Podrías probarlo con Delphi ó VB ? gracias.
regards, saludos

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

Perdon...

Postby leandro » Wed Sep 06, 2006 2:17 pm

Perdon por entrometerme en la conversación... Pero como buen curioso vi el video que envio jlcapel, y me di cuenta que en la parte izquierda de la aplicacion tiene un control tipo outlook, la pregunta es ¿como se hace para que este control tome la apariencia xp que tiene ese?, ó ¿Es otra clase diferente?.
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1482
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Postby jlcapel » Wed Sep 06, 2006 7:53 pm

Leandro,

Es la vTaskBar de Paco García, de canalfive.

Saludos,
José Luis Capel
User avatar
jlcapel
 
Posts: 229
Joined: Wed Oct 12, 2005 5:32 pm
Location: Valencia - España

Postby jlcapel » Fri Sep 08, 2006 7:21 am

Antonio,

Corregido!!

Se me coló esto :oops: :

Code: Select all  Expand view
   LOCAL aRect := GetClientRect(GetDesktopWindow())
   DEFINE WINDOW ::oAppOwnd FROM aRect[1],aRect[2] TO aRect[3],aRect[4] ;
            COLOR RGB(0,0,0),CL_FONDO[ CL_SELECCIONADO ] ;
            TITLE Self:cNombrePrograma ;
            MENU Self:CreaMenuNormal()


Y luego la activo maximizada. Entonces al 'restaurar' toma tooodo el ancho de la pantalla. Esto con un monitor funciona bien. Pero con dos... no.

Disculpa las molestias.

Saludos,
José Luis Capel
User avatar
jlcapel
 
Posts: 229
Joined: Wed Oct 12, 2005 5:32 pm
Location: Valencia - España

Postby Antonio Linares » Fri Sep 08, 2006 8:40 am

Jose Luis,

Me alegro de que esté solucionado :-)
regards, saludos

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


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 13 guests