[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