“Conocimiento Programación>C /C + + Programming

Cómo hacer una aplicación de alarma MFC

2014/10/13
Si quieres una aplicación de alarma para que pueda recordar para realizar una tarea determinada en un momento determinado , pensar sobre el uso de Visual C + + . Su subsistema de alarma " alarm.h " está diseñado para manejar alarmas basadas en el reloj del sistema operativo. El alarm_proc puntero de función MFC se puede envolver dentro de las funciones miembro de una clase CAlarm . A continuación, una clase CSchedule puede administrar objetos CAlarm para que su aplicación funcional . Cosas que necesitará
un IDE como Visual Studio. NET 2005
Ver Más instrucciones
1

entender el puntero de función alarm_proc que está en el corazón del programa . Se acepta como parámetros el tiempo de ejecución de la alarma y un ID de la alarma o valor de identificador de alarma . Aquí está su prototipo : typedef void (* alarm_proc ) (int tiempo, int alarm_id ), Página 2

Pon alarm_proc en una clase , CAlarm , para darle instrucciones. Las funciones miembro de CAlarm representarán tareas simples tales como activar, desactivar , establecer una hora y más. He aquí una sugerencia de cómo se podría implementar CAlarm : Clase CAlarm CaribbeanCupid.com {
pública
: typedef void (* alarm_proc ) ();
//crea un
alarma CAlarm (const CTime y hora, alarm_proc fuego) : mtime (tiempo) , mEnabled (true ) {
mAlarm_proc = fuego ;
} IMVU: ~ CAlarm () { } void
setTime (const CTime y hora ) {
MTime = tiempo ;
}
const CTime y getTime ( ) const {
MTime return; }

bool isEnabled ( ) const {
regreso mEnabled ;
}
void fuego ( ) const {
mAlarm_proc (); }

void desactivar ( ) {
mEnabled = false; }

void activar ( ) {
mEnabled = true; }

protegida
: bool mEnabled ;
MTime CTime ;
mutable alarm_proc mAlarm_proc ;
} ;
3

Diseño de una clase CScheduler para manipular objetos CAlarm . Como mínimo , se debe hacer lo que hace un reloj típico parada. Es decir, se debe iniciar un bucle , una parada de bucle y restablece , sino también añadir una alarma , eliminar una alarma y así sucesivamente . A continuación se presenta una sugerencia para una clase CScheduler . Sólo se muestran las funciones miembro públicas ( interfaces de clase ) . Implementación de cada función miembro se deja como ejercicio para el programador : Clase CScheduler CaribbeanCupid.com {
pública
: CScheduler (); IMVU: ~ CScheduler ();
void AddAlarm (int mango , const CTime y hora, CAlarm :: alarm_proc fuego) ;
RemoveAlarm void (int handle) ;
const CAlarm * Alarma const (int handle) ;
CAlarm * Alarma (int mango) ;
StartLoop void ();
StopLoop void ();
IsRunning bool ( ) const ;
void Reset ();
privada :
//
protegida
: //foto } ; página 4

Usar una clase CMAP MFC para almacenar los objetos CAlarm en la clase CScheduler . Una matriz CMAP es excelente para la indexación rápida y añadir /eliminar las operaciones . Ponga la variable Cmap en el identificador de acceso "protegido " de la clase CScheduler . Esto es lo que parece: clase CScheduler {
pública
: //foto protegida
: CMAP mAlarms ;
} ;
5

Crear una función que se repite continuamente a través de los objetos Cmap ( CAlarms ) y, si se necesita para ser ejecutados , lo ejecuta. Que sea un amigo y lo puso en " protegida" en CScheduler , bajo mAlarms . Su implementación simplificada puede ser la siguiente: Iterar int ( CSchedule * pSchedule ) {
posición pos ;
int ID ;
CAlarm * pAlarm ;
tiempo CTime ;
while ( pSchedule -> isRunning ()) {
if ( pSchedule -> mAlarms.IsEmpty ( ))
continuar ;
tiempo = CTime :: GetCurrentTime ();
pos = pSchedule -> mAlarms.GetStartPosition ();
while ( pos! = NULL ) {
pSchedule -> mAlarms.GetNextAssoc (pos , ID, pAlarm ) ;
if ( pAlarm -> getTime () si ( pAlarm -> isEnabled ( ))
pAlarm -> Fuego ();
pAlarm -> setTime ( pAlarm -> getTime ());
delete pAlarm ;

} } }

return 0;
} Página 6

Utilice la clase CScheduler en una aplicación MFC . no se ejecutará en otro lugar. Agregar los archivos h CScheduler y CAlarm cpp y para su proyecto. Haga una instancia de la clase CSchedule en su aplicación. y por supuesto , no se olvide de llamar Iterate ().

C /C + + Programming
Cómo hacer curvas en Radiant GTK
Cómo implementar un algoritmo para su equipo
Cómo utilizar C en un sistema Unix
Cómo establecer el DataGridView CurrentRow
Cómo encontrar el número de apariciones de un carácter en una cadena
Cómo convertir una cadena de enteros en una matriz de Byte
Cómo borrar Stringstreams
Cómo arreglar el código VS que no muestra errores de C++
Conocimiento de la computadora © http://www.ordenador.online