Aplicación FiveWin con dos monitores

Post Reply
User avatar
jlcapel
Posts: 229
Joined: Wed Oct 12, 2005 5:32 pm
Location: Valencia - España
Contact:

Aplicación FiveWin con dos monitores

Post by jlcapel »

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
thefull
Posts: 720
Joined: Fri Oct 07, 2005 7:42 am
Location: Barcelona
Contact:

Re: Aplicación FiveWin con dos monitores

Post by thefull »

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
jlcapel
Posts: 229
Joined: Wed Oct 12, 2005 5:32 pm
Location: Valencia - España
Contact:

Post by jlcapel »

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
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

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
jlcapel
Posts: 229
Joined: Wed Oct 12, 2005 5:32 pm
Location: Valencia - España
Contact:

Post by jlcapel »

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
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

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: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

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
jlcapel
Posts: 229
Joined: Wed Oct 12, 2005 5:32 pm
Location: Valencia - España
Contact:

Post by jlcapel »

Antonio,

En este video puedes ver el comportamiento que te describo.

http://hyperupload.com/download/02dc398 ... n.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
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

José Luis,

gracias por el video.

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

Antonio Linares
www.fivetechsoft.com
User avatar
leandro
Posts: 958
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Perdon...

Post by leandro »

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 ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
User avatar
jlcapel
Posts: 229
Joined: Wed Oct 12, 2005 5:32 pm
Location: Valencia - España
Contact:

Post by jlcapel »

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
Contact:

Post by jlcapel »

Antonio,

Corregido!!

Se me coló esto :oops: :

Code: Select all

   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
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Jose Luis,

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

Antonio Linares
www.fivetechsoft.com
Post Reply