Girar la ventana de la pocket

Post Reply
User avatar
nolgiati
Posts: 58
Joined: Fri Apr 20, 2007 1:38 pm

Girar la ventana de la pocket

Post by nolgiati »

Hola a todos...molesto nuevamente con otra pregunta.

Vi por ahi que existe una manera de indicarle a la pocket desde el codigo que esconda o muetre su teclado.

Mi pregunta es si existe algo similar pero que al ingresar a mi aplicacion corriendo en la pocket automaticamente me gire la pantalla de la misma, o sea, me muestre la pantalla en forma horizontal y no vertical.

Gracias a todos!
Natalia Olgiati.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Natalia,

usa las funciones LandScape() para horizontal y Portrait() para vertical
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
nolgiati
Posts: 58
Joined: Fri Apr 20, 2007 1:38 pm

Post by nolgiati »

Antonio gracias lo voy a probar.
User avatar
JmGarcia
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Post by JmGarcia »

Antonio Linares wrote:usa las funciones LandScape() para horizontal y Portrait() para vertical
La función LandScape() gira 90º a la derecha y la Portrait() a la izquierda, a 0º, hasta aquí bien. Pero yo pregunto ¿ Como girar 180º o 270º ?
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

JM,

Aqui tienes el código de LandScape() y Portrait(). Como ves, es fácil construir nuevas funciones que giren como deseas:

Code: Select all

HB_FUNC( LANDSCAPE ) // turns the display into landscape
{
   DEVMODE devmode;
   
   memset( &devmode, 0, sizeof( devmode ) );
   devmode.dmSize = sizeof( DEVMODE );
   devmode.dmDisplayOrientation = DMDO_90; //landscape mode
   devmode.dmFields = DM_DISPLAYORIENTATION;
   ChangeDisplaySettingsEx( NULL, &devmode, NULL, 0, NULL );
}

HB_FUNC( PORTRAIT ) // turns the display into portrait
{
   DEVMODE devmode;
   
   memset( &devmode, 0, sizeof( devmode ) );
   devmode.dmSize = sizeof( DEVMODE );
   devmode.dmDisplayOrientation = DMDO_0; // portrait mode
   devmode.dmFields = DM_DISPLAYORIENTATION;
   ChangeDisplaySettingsEx( NULL, &devmode, NULL, 0, NULL );
}	
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
JmGarcia
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Post by JmGarcia »

He encontrado estas variables de include:
DMDO_DEFAULT=0
DMDO_270=3
DMDO_180=2
DMDO_90=1
DMDO_0= ¿?

Supongo que son estas las que hay que tocar.

Ahora me surge una duda.
Con esta funcion:

Code: Select all

if oWnd:nWidth>oWnd:nHeight
   // Esta en apaisado
else
   // Esta en vertical
endif
Detecto si esta en vertical o apaisado, pero mi duda es como saber si esta la pantalla en 0º o 180º, o como esta en 90º o 270º.
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
User avatar
JmGarcia
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Post by JmGarcia »

JmGarcia wrote:...pero mi duda es como saber si esta la pantalla en 0º o 180º, o como esta en 90º o 270º.
Ups... :roll:
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
Post Reply