Detectar Automatica la resolucion de la pantalla

253 views
Skip to first unread message

Badsy

unread,
Jan 25, 2009, 4:01:45 AM1/25/09
to Mundo Visual FoxPro
Estimados amigos de Foro:

Les pido el favor si alguien me puede dar una mano de como incluyo en
el formulario principal de la aplicación una rutina que detecte
automaticamente la resolución de la pantalla y se configure a esta.

Muchas gracias por la ayuda.

Atentamente,
badsy

Julio Cesar Rodriguez Dominguez

unread,
Jan 25, 2009, 11:03:55 AM1/25/09
to mundovis...@googlegroups.com


2009/1/25 Badsy <hegu...@gmail.com>

SYSMETRIC(1)
SYSMETRIC(2)

Date una vuelta por el manual y revisa esas funciones.
 





--
:: God bless you, every day and every night ::

GOOD_FOX

unread,
Jan 26, 2009, 10:28:41 AM1/26/09
to Mundo Visual FoxPro
.

GOOD_FOX

unread,
Jan 26, 2009, 10:30:25 AM1/26/09
to Mundo Visual FoxPro
REVISEN ESTO, ESTA MUY BUENO.....!!!

DECLARE Integer GetSystemMetrics IN Win32API Integer nIndex
lnVer = GeTSystemMetrics(1) && Devuelve la resolución vertical, 600
lnHor = GeTSystemMetrics(16) && Devuelve la resolución horizontal, 800
Replace Config.Vertical WITH lnVer
Replace Config.Horizontal WITH lnHor
ChangeRes(1024,768)

*!* Cambia la resolución de la pantalla
*!* Sintaxis: ChangeRes(tnWidth, tnHeight)
*!* Valor devuelto: llRetVal
*!* Argumentos: tnWidth, tnHeight
*!* tnWidth especifica la nueva anchura de la pantalla en pixels
*!* tnHeight especifica la nueva altura de la pantalla en pixels

FUNCTION ChangeRes
LPARAMETERS tnWidth, tnHeight
LOCAL lnWidth, lnHeight, lnModeNum, lcDevMode
*!* Valores
lnModeNum = 0
lcDevMode = REPLICATE(CHR(0), 156)
lnWidth = IIF(EMPTY(tnWidth), 800, tnWidth)
lnHeight = IIF(EMPTY(tnHeight), 600, tnHeight)
*!* Instrucciones DECLARE DLL para cambiar resolución
DECLARE INTEGER EnumDisplaySettings IN Win32API STRING
lpszDeviceName,;
INTEGER iModeNum, STRING @lpDevMode
DECLARE INTEGER ChangeDisplaySettings IN Win32API STRING
@lpDevMode ,;
INTEGER dwFlags
*!* Bucle para obtener todos los modos disponibles
DO WHILE EnumDisplaySettings(NULL, lnModeNum, @lcDevMode) <> 0
lnModeNum = lnModeNum +1
ENDDO
*!* Configurar la structura DevMode
lcDevMode = STUFF(lcDevMode, 41, 4, LongToStr(1572864))
lcDevMode = STUFF(lcDevMode, 109, 4, LongToStr(tnWidth)) && Ancho
lcDevMode = STUFF(lcDevMode, 113, 4, LongToStr(tnHeight)) && Alto
*!* Cambiar resolucion
ChangeDisplaySettings(@lcDevMode, 1)
ENDFUNC

*!* Convierte un long integer a un 4-byte character string
*!* Sintaxis: LongToStr(lnLongVal)
*!* Valor devuelto: lcRetStr
*!* Argumentos: lnLongVal
*!* lnLongVal especifica el long integer a convertir
FUNCTION LongToStr
LPARAMETERS lnLongVal
LOCAL lnCnt, lcRetStr
lcRetStr = ''
FOR lnCnt = 24 TO 0 STEP -8
lcRetStr = CHR(INT(lnLongVal/(2^lnCnt))) + lcRetStr
lnLongVal = MOD(lnLongVal, (2^lnCnt))
NEXT
RETURN lcRetStr
ENDFUNC



NOTA: ESTA FUNCION NO LA HIZE YO...... SALUDOS !!
Reply all
Reply to author
Forward
0 new messages