Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: sotreum en 13 de Agosto de 2003, 02:49:46 AM

Título: Restablecer El Reflesco Original Del Monitor
Publicado por: sotreum en 13 de Agosto de 2003, 02:49:46 AM
 pues resulta q estamos haciendo un juego en visual basic y cuando entras se pone a 800 x 600 y a 16 bits y si sales se restablece a la resolucion q tengas en el monitor y a los bits de color q tubieras pero resulta q se queda a 60 hercios el monitor en vez de  restablecerse.
Si alguien sabe como solucionarlo se lo agradeceria mucho.

Por cierto si alguien esta interesado en participar en el proyecto q me lo comuniq q siempre es bien venido.

la pagina principal es http://aogames.iespana.es no esta muy actualizada porq estamos con la programacion y los graficos pero bueno si alguien quiere verla.
Título: Restablecer El Reflesco Original Del Monitor
Publicado por: BeRSeRKeR en 13 de Agosto de 2003, 03:34:04 AM
 En el API Win32 tienes dos funciones que podrían servirte.

Por un lado tienes la función:

BOOL EnumDisplaySettings(
 LPCTSTR lpszDeviceName, // display device
 DWORD iModeNum,           // graphics mode
 LPDEVMODE lpDevMode    // graphics mode settings
);


Si a iModeNum le pasas el valor ENUM_CURRENT_SETTINGS o ENUM_REGISTRY_SETTINGS te devuelve la configuración actual y la almacena en lpDevMode, estructura que contiene un miembro llamado dmDisplayFrequency que contiene la frecuencia de refresco.

A esta función la llamarías antes de cambiar el modo gráfico para obtener la configuración actual. Cuando quieras restaurar dicha configuración, utiliza la función:

LONG ChangeDisplaySettings(
 LPDEVMODE lpDevMode,  // graphics mode
 DWORD dwflags               // graphics mode options
);

a la cual le deberías pasar la estructura lpDevMode que obtuviste con la función EnumDisplaySettings.

No se si todo eso será así exactamente pero por ahí deben ir los tiros. Mírate la MSDN para más información sobre estas funciones.

Saludos
Título: Restablecer El Reflesco Original Del Monitor
Publicado por: sotreum en 13 de Agosto de 2003, 06:51:39 PM
 pero es visual basic 6.0  <_<  no c++ alguien sabe una solucion para este lenguaje????  :(  
Título: Restablecer El Reflesco Original Del Monitor
Publicado por: Mars Attacks en 13 de Agosto de 2003, 06:58:17 PM
Cita de: "sotreum"pues resulta q estamos haciendo un juego en visual basic
Hey, creo que el fallo ha sido tuyo.
Título: Restablecer El Reflesco Original Del Monitor
Publicado por: BeRSeRKeR en 13 de Agosto de 2003, 07:57:01 PM
 Se pueden utilizar funciones del API Win32 en Visual Basic sin ningún problema...
Título: Restablecer El Reflesco Original Del Monitor
Publicado por: sotreum en 13 de Agosto de 2003, 10:32:14 PM
 Umm si el fallo a sido mio sorry  (nooo)  pero esq yo no soy el programador sino el diseñador y el grafista  :blink: , pero es lo q me dijo el programador, pues si alguien fuera tan amable de explicarmelo mas claro se lo agradeceria mucho.

PDT os referis al visual basic net o al 6.0 o es indiferente? nosotros usamos el 6.0 por si sirve de algo.
Título: Restablecer El Reflesco Original Del Monitor
Publicado por: BeRSeRKeR en 13 de Agosto de 2003, 10:42:08 PM
 Por casualidad he encontrado en un foro a gente con tu mismo problema. Echale un vistazo a este thread. En la parte inferior también podrás encontrar otros threads relacionados con el tema del refresco de pantalla.

También puedes mirarte este otro thread

Creo que más o menos vienen a decir lo mismo que yo te he dicho, es decir, recoges la configuración original del sistema con EnumDisplaySettings y cuando vayas a cerrar la aplicación la restauras con SetDisplaySettings pasándole como parámetro la configuración original.

Saludos

PD: y sí, lo que te digo también sirve para VB 6.0
Título: Restablecer El Reflesco Original Del Monitor
Publicado por: sotreum en 14 de Agosto de 2003, 03:55:32 AM
 Pues muchísimas gracias le made la dirección de este post al programador espero q le sirva de ayuda.

(ole)  (ole)  (ole) BeRSeRKeR (ole)  (ole)

Te lo has currado jeje ya tendrás la oportunidad de  echarnos otra mano con problemas puntuales que seguro q los tendremos  ;)

Pues eso Konde q si tienes alguna duda utiliza esta gran pagina para postear q con gente como BeRSeRKeR no habrá problema q se nos resista

UN SALUDO PA TODOS