Welkom op de Nederland Computer Kennisnetwerk!  
 
Zoeken computer kennis
Home Hardware Netwerken Programmering Software Computerstoring Besturingssysteem
Computer Kennis >> Programmering >> C /C + + Programming >> Content
Hoe een MFC Alarm Application Zorg
Als u een alarm applicatie wilt , zodat u zich kunt herinneren om een ​​bepaalde taak uit te voeren op een bepaalde tijd, na te denken over het gebruik van Visual C + + . Het alarm subsysteem " alarm.h " is ontworpen om alarmen op basis van het besturingssysteem klok verwerken . De MFC alarm_proc functie pointer kan verpakt worden in lid functies in een CAlarm klasse . Dan kan een CSchedule klasse CAlarm objecten beheren om uw applicatie functioneel te maken . Wat je nodig hebt
Een IDE zoals Visual Studio . NET 2005
Toon Meer Aanwijzingen
1

Begrijp de alarm_proc functie pointer dat is de kern van het programma . Zij aanvaardt als parameters de uitvoeringstijd van het alarm en een alarm ID of alarm handvat waarde . Hier is het prototype : typedef void ( * alarm_proc ) ( int tijd , int alarm_id ) ;
2

Doe alarm_proc in een klas , CAlarm , om het instructies geven . De functies lid van CAlarm zullen eenvoudige taken zoals het inschakelen, uitschakelen vertegenwoordigen , het instellen van een tijd en meer . Hier is een suggestie over hoe je CAlarm kon implementeren : class CAlarm
{
publiek :
typedef void ( * alarm_proc ) ( ) ; Twitter //creëert een alarm
CAlarm ( const CTime & tijd , alarm_proc brand ) : mtime ( tijd ) , mEnabled (true ) {
mAlarm_proc = vuur ;
}
~ CAlarm ( ) { }
nietig setTime ( const CTime & tijd ) {
mtime = tijd ;
}
const CTime & getTime ( ) const { return
mtime ;
}
bool isEnabled ( ) const { return
mEnabled ;
}
leegte brand ( ) const {
mAlarm_proc ( ) ; }

leegte uitschakelen ( ) {
mEnabled = false; }

leegte staat ( ) { < br > mEnabled = true; }

beschermd :
bool mEnabled ;
CTime mtime ;
veranderlijk alarm_proc mAlarm_proc ;
} ;

Ontwerp 3 een CScheduler klasse voor het manipuleren CAlarm objecten. Op minimum , moet doen wat een typische stopwatch doet . Dat is , moet het een lus starten , stoppen een lus en reset , maar ook toevoegen een alarm , verwijdert een alarm en ga zo maar door . Hieronder vindt u een suggestie voor een CScheduler klasse . Alleen de functies publiek lid ( klasse interfaces ) worden getoond . Uitvoering van elk lid functie wordt overgelaten als een oefening voor de programmeur : class CScheduler
{
publiek :
CScheduler ( ) ;
~ CScheduler ( ) ;
leegte AddAlarm ( int handvat , const CTime & tijd , CAlarm :: alarm_proc brand ) ;
leegte RemoveAlarm ( int behandelen ) ;
const CAlarm * Alarm ( int handvat ) const ;
CAlarm * Alarm ( int handle ) ; < br > leegte StartLoop ( ) ;
leegte StopLoop ( ) ;
bool IsRunning ( ) const ;
void Reset ( ) ;
prive :
//< br > beschermd :
//
} ; Goedkope 4

Gebruik een MFC CMap klasse aan de CAlarm objecten op te slaan in de CScheduler klasse . Een CMap array is uitstekend geschikt voor snelle indexering en voeg /activiteiten verwijderen . Zet de CMap variabele in de "beschermde " toegang identifier van de CScheduler klasse . Hier is hoe het eruit ziet : class CScheduler {
publiek :
//
beschermd :
CMap mAlarms ;
} ;
5

Maak een functie die continu doorloopt de CMap objecten ( CAlarms ) en , indien men nodig heeft om te worden uitgevoerd , voert het uit . Maak er een vriend en zet het in " beschermde " in CScheduler , onder mAlarms . De vereenvoudigde implementatie kan worden als volgt : int itereren ( CSchedule * pSchedule ) {
POSITIE pos ;
int ID ;
CAlarm * pAlarm ;
CTime tijd ;
terwijl ( pSchedule - > isRunning ( ) ) {
if ( pSchedule - > mAlarms.IsEmpty ( ) ) op blijven ;
tijd = CTime :: GetCurrentTime ( ) ;
pos = pSchedule - > mAlarms.GetStartPosition ( ) ; < br > terwijl ( pos! = NULL ) {
pSchedule - > mAlarms.GetNextAssoc ( pos , ID , pAlarm ) ;
if ( pAlarm - > getTime ( ) if ( pAlarm - > isEnabled ( ) ) op Twitter pAlarm - > fire ( ) ;
pAlarm - > setTime ( pAlarm - > getTime ( ) ) ;
delete pAlarm ;
}
}
}
return 0 ;
}
6

Gebruik de klasse CScheduler in een MFC -toepassing. het zal niet elders lopen . Voeg de CScheduler en CAlarm cpp -en h -bestanden naar uw project . Maak een instantie van de klasse CSchedule in uw toepassing . en , Natuurlijk , vergeet dan niet te herhalen ( ) noemen .

Previous: Next:
  C /C + + Programming
·Hoe kan ik HTML -extensies in …
·Hoe te Variabele Parameter fun…
·Hoe te stdlib.h gebruiken 
·Hoe maak je een tekstvak maken…
·Hoe maak je een Pointer conver…
·Hoe kan ik een array in C taal…
·Hoe de strstr functie in gebru…
·Hoe de Soorten Input Validatio…
·Hoe te Python insluiten in Vis…
  Related Articles
Hoe maak je een Combo Box Maak in Visual…
Hoe maak je een Check Box Maak in Visual…
Hoe maak je een tekstvak maken in Visual…
Hoe maak je een optie Box in Visual Basi…
Hoe maak je een schijf keuzelijst in Vis…
Hoe kan ik een keuzelijst maken in Visua…
Hoe kan ik een Picture Box Maak in Visua…
Hoe een bestand keuzelijst Maak in Visua…
Hoe kan ik een afbeelding Box Maak in Vi…
  Programmering Articles
·Contour Niveaus in MATLAB 
·Hoe Easy VBS Script Online creëren en e…
·Gebruik van Collator in Java 
·Verschillende gegevenstypen in Visual Ba…
·Hoe maak je een programma om samengestel…
·Hoe kom ik erachter Uw Javac Versie 
·Java String Manipulatie voor het convert…
·Hoe te Subdomeinen Blok in PHP 
·Hoe maak je een grafisch programma schri…
Copyright © Computer Kennis http://www.nldit.com