Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> C /C + + -programmering >> Content

    Hur man gör en MFC Alarm Ansökan

    Om du vill ha ett larm program så att du kan komma ihåg att utföra en viss uppgift till en viss tid , tycker om att använda Visual C + + . Dess larm delsystemet " alarm.h " är utformad för att hantera larm baserade på operativsystemet klockan . Maskinen alarm_proc funktionspekare kan lindas inuti medlemsfunktioner i en CAlarm klassen. Sedan en CSchedule klass kan hantera CAlarm objekt för att göra din ansökan funktionell . Saker du behöver Review, en IDE som Visual Studio . NET 2005
    Visa fler instruktioner
    1

    Förstå alarm_proc funktion pekare som är kärnan i programmet . Det tar som parametrar exekveringstiden av larmet och ett larm -ID eller alarm handtag värde . Här är dess prototyp : typedef void ( * alarm_proc ) ( int tid , int alarm_id ) , Sida 2

    Sätt alarm_proc i en klass , CAlarm , för att ge det instruktioner . Medlemsföretagen funktioner CAlarm kommer att representera enkla uppgifter som möjligt , avaktivera , sätta en tid och mer . Här är ett förslag på hur man skulle kunna genomföra CAlarm : class CAlarm
    {
    offentliga
    :
    typedef void ( * alarm_proc ) ( ) , kommenterar: //skapar ett larm
    CAlarm ( const ctime & tid , alarm_proc brand ) : Mtime ( tid ) , mEnabled ( true ) {
    mAlarm_proc = eld ,
    }
    ~ CAlarm ( ) { }
    void setTime ( const ctime & tid ) {
    Mtime = tid ,
    }
    const ctime & getTime ( ) const {
    avkastning Mtime ,
    }
    bool isEnabled ( ) const {
    avkastning mEnabled ;
    }
    void fire ( ) const {
    mAlarm_proc ( ) ;
    }
    void avaktivera ( ) {
    mEnabled = false;
    }
    void aktivera ( ) {
    mEnabled = true;
    }
    skyddade
    :
    bool mEnabled ,
    ctime Mtime ,
    föränderlig alarm_proc mAlarm_proc ,
    } ;
    3

    Design en CScheduler klass för att manipulera CAlarm objekt . Åtminstone borde den göra vad en typisk stoppur gör . Det vill säga, bör den börja en slinga , sluta en slinga och återställa , men även lägga ett larm , ta bort ett larm och så vidare. Nedan följer ett förslag på en CScheduler klass . Endast offentliga medlem funktioner ( klass gränssnitt ) visas . Genomförandet av varje delfunktion är kvar som en övning för programmeraren : class CScheduler
    {
    offentliga
    :
    CScheduler ( ) ;
    ~ CScheduler ( ) ;
    void AddAlarm ( int handtag , const ctime & tid , CAlarm :: alarm_proc brand ) ,
    void RemoveAlarm ( int handtag ) ,
    const CAlarm * Larm ( int handtag ) const;
    CAlarm * Larm ( int handtag ) ;
    void StartLoop ( ) ;
    void StopLoop ( ) ;
    bool IsRunning ( ) const;
    void Reset ( ) ;
    privat
    : Twitter //
    skyddad Blogg:
    //
    };
    4

    Använd en MFC CMap klass för att lagra CAlarm objekt i CScheduler klassen . En CMap array är utmärkt för snabb indexering och lägga till /ta bort funktioner . Sätt CMap variabel i den "skyddade " access identifierare för CScheduler klassen. Såhär ser det ut : class CScheduler {
    offentliga
    :
    //
    skyddade
    :
    CMap mAlarms ,
    } ;
    5

    Skapa en funktion som kontinuerligt itererar genom CMap objekten ( CAlarms ) och , om man behöver verkställas , utför det. Gör det till en kompis och lägga den i " skyddad " i CScheduler under mAlarms . Dess förenklad tillämpning kan vara följande : int Iterate ( CSchedule * pSchedule ) {
    POSITION pos ;
    int ID ;
    CAlarm * pAlarm ;
    ctime tid,
    while ( pSchedule -> isRunning ( ) ) {
    om ( pSchedule - > mAlarms.IsEmpty ( ) ) katalog fortsätta ,
    tid = ctime :: GetCurrentTime ( ) ;
    pos = pSchedule - > mAlarms.GetStartPosition ( ) ;
    medan ( pos! = null ) {
    pSchedule - > mAlarms.GetNextAssoc ( pos , ID , pAlarm ) ;
    om ( pAlarm - > getTime ( ) if ( pAlarm - > isEnabled ( ) ) katalog pAlarm - > eld ( ) ;
    pAlarm - > setTime ( pAlarm - > getTime ( ) ) ;
    delete pAlarm ,
    }
    }
    }
    avkastning 0 ;
    }
    6

    Använd CScheduler klassen i en MFC applikation . det kommer inte att köra någon annanstans . Tillsätt CScheduler och CAlarm cpp och h -filer till ditt projekt . Gör en instans av CSchedule klassen i din ansökan . och Naturligtvis , glöm inte att ringa Iterate ( ) .

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur man hittar en Maximum i Array i C
    ·Användning av en default konstruktor C
    ·Hur man tar bort exponenten från en flottör i C + +
    ·Så kasta om ordningen av en vektor i C + +
    ·Skillnaden mellan Filestream & StreamReader
    ·Hur man gör ett objekt Bounce i C #
    ·Hur du jämför två heltal i en funktion med C + +
    ·Lägga till decimaler i C + +
    ·Vilka är de funktioner Turbo C
    ·Hur att skapa program för Windows Mobile Net
    Utvalda artiklarna
    ·. Hur man använder DLL i VBS
    ·Hur att packa en fil i C #
    ·Hur man uppdaterar en rad i Microsoft SQL
    ·Hur man kompilerar Java Utan JDK
    ·Hur man installerar Java för Spel
    ·Hur man lägger in en fördröjning i Shell Script
    ·Steg-för - steg PHP Training
    ·Fördelarna av introspektion i Python
    ·Hur man skapar ett File Upload rutin i PHP
    ·Konvertera text till Java Script
    Copyright © Dator Kunskap http://www.dator.xyz