Aplicación FiveWin con dos monitores
Aplicación FiveWin con dos monitores
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
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
Re: Aplicación FiveWin con dos monitores
Jose luis, miralo por el lado positivo!!!
SIEMPRE PUEDES TENER MAS COLUMNAS EN EL BROWSE!!! jejejeje
Ni idea... ( lo siento no pude resistirme....jajajja )
SIEMPRE PUEDES TENER MAS COLUMNAS EN EL BROWSE!!! jejejeje
Ni idea... ( lo siento no pude resistirme....jajajja )
Saludos
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
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
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
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Hola Antonio,
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
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
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
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
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
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
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
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
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
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
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Perdon...
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 ]
LEANDRO ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
Antonio,
Corregido!!
Se me coló esto :
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
Corregido!!
Se me coló esto :
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()
Disculpa las molestias.
Saludos,
José Luis Capel
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact: