Pregunta: | 13388 - RESOLUCION DE PANTALLA |
Autor: | Miguel Mesones |
Hola!
¿Sabe alguien si es posible cambiar la resolución de la pantalla de windows desde Visual Foxpro? Con visual Basic es posible.¿Pero desde Visual Foxpro? Gracias y espero respuesta. |
Respuesta: | Guillermo Escalante |
Esta Funcion la encontre en FOXBOARD, espero que te funcione.... *!* 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 SKO |