[C con Clase] Re: como se hace para ... ¿desea reiniciar el juego ?
Francesc
fcabecer en xtec.cat
Dom Ene 14 18:05:08 CET 2007
Efectivamente es mas elegante manda el mensaje
SendMessage(hdlg,WN_INITDIALOG,0,0);
y de esta manera no hace falta duplicar la inicialización de variables
gracias de nuevo.
por cierto y a riesgo de ser pesado, por lo que he visto, es prácticament
imposible modificar los colores de los controles,
y además si se modifica el tamaño de los caracteres de los controles tambien
se modifica automáticament el tamaño de los mismos,
tampoco parece fácil modificar el color de los textos de los controles, todo
ello con Visual C 6.0, quizas con Visual Studio 2005 sea más sencillo
----- Original Message -----
From: "Steven Davidson" <steven en conclase.net>
To: <cconclase en listas.conclase.net>
Sent: Sunday, January 14, 2007 4:24 PM
Subject: Re: [C con Clase] como se hace para ... ¿desea reiniciar el juego ?
Hola Francesc,
El pasado 2007-01-13 22:45:23, Francesc Cabecerans escribió:
FC> he comentado este tema con otro colega y propone basicamente lo mismo
que
FC> tu. O sea preguntar al usuario y si este decide serguir, entonces
FC> INICIALIZAR TODAS LAS VARIABLES DEL JUEGO de nuevo, parece que no hace
falta
FC> el mensaje WM_INIDIALOG, sencillamente en cunto el timer llega al final
del
FC> tiempo si la respuesta es seguir jugando basta con poner las variables
FC> "importantes" a su valor inicial
Es cierto que puedes reasignar aquellas variables importantes en ese
momento, pero como desconozco por completo los detalles de tu aplicación, no
te podía dar esa opción. En lo general, 'WM_INITDIALOG' existe precisamente
para eso: "iniciar el diálogo". Si usas variables "normales", entonces
adelante. Lo más seguro es que estés escribiendo por partida doble las
mismas sentencias: la primera vez que entras al cuadro de diálogo y luego
las posteriores veces cuando el usuario decide continuar. Por esta razón,
sugerí volver a 'WM_INITDIALOG'. Además, si luego tienes que agregar más
variables a tu aplicación, tienes que estar pendiente de darles valores
iniciales en dos lugares: al comienzo del diálogo y en el "reinicio". No
sugiero crear este tipo de dependencias, ya que casi siempre hay problemas
si se hacen cambios "pequeños".
Otra solución es crear tus propios mensajes y así asegurar que todo va al
mismo lugar. Por ejemplo,
#define WM_REINICIO (WM_APP+1)
...
case WM_INITDIALOG:
SendMessage( hdlg, WM_REINICIO, 0, 0 );
...
case IDT_TIMER1:
SendMessage( hdlg, WM_REINICIO, 0, 0 ); // Quizá 'PostMessage()' sea
mejor
...
case WM_REINICIO:
// Asignar valores iniciales a las variable importantes
...
En fin, todo esto no es más que algunas sugerencias. Si lo que has
implementado te funciona bien, puedes hacer caso omiso de lo que he dicho.
Espero que esto te sea de ayuda.
Steven
_______________________________________________
Cconclase mailing list
Cconclase en listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Más información sobre la lista de distribución Cconclase