Page 1 of 1

Girar la ventana de la pocket

Posted: Wed Jul 04, 2007 8:21 pm
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.

Posted: Wed Jul 04, 2007 8:38 pm
by Antonio Linares
Natalia,

usa las funciones LandScape() para horizontal y Portrait() para vertical

Posted: Wed Jul 04, 2007 9:07 pm
by nolgiati
Antonio gracias lo voy a probar.

Posted: Wed Nov 05, 2008 9:30 pm
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º ?

Posted: Thu Nov 06, 2008 8:31 am
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 );
}	

Posted: Thu Nov 06, 2008 9:04 am
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º.

Posted: Sat Nov 15, 2008 7:12 pm
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: