Sleep wie anwenden?



  • Dann arbeite mit SetTimer über ne TimerProc (und setz den hWnd-Paramter auf NULL).



  • kannst du mir bitte nen beispiel geben?
    ich bin da noch nicht so geübt 😞





  • so?

    int main() { 
    SetTimer(hwnd,             // handle to main window 
        IDT_TIMER1,            // timer identifier 
        10000,                 // 10-second interval 
        (TIMERPROC) NULL);     // no timer callback 
    
    SetTimer(hwnd,             // handle to main window 
        IDT_TIMER2,            // timer identifier 
        300000,                // five-minute interval 
        (TIMERPROC) NULL);     // no timer callback 
    
    case WM_TIMER: 
    
        switch (wParam) 
        { 
            case IDT_TIMER1: 
                //F1
    
                 return 0; 
    
            case IDT_TIMER2: 
                // F2
    
                return 0; 
        } 
    }
    

    kann es aber nicht kompilieren



  • Nein so auf keinen Fall, wie soll das auch funktionieren!!!
    Du sollst doch eine Timerproc angeben wie CodeFinder gesagt hat!

    schirrmie



  • Danke schirrmie 😉 ! War mir eigentlich zu blöd auf so einen (nicht erstgemeinten?! Troll?!) Post zu antworten...das ist so offensichtlich falsch und hat auch nicht viel mit 'ich bin da noch nicht so geübt' zu tun, sondern mit purer Faulheit, sich da einzuarbeiten (@OT: Sry, aber ist so, das ist ja nur kontextlos zusammenkopiert).

    Also der Aufruf von SetTimer sähe logischerweise so aus:

    SetTimer(NULL, 0, 1000 /*Millisekunden*/, TimerProc);
    
    void CALLBACK TimerProc(HWND hWnd, UINT uiMsg, UINT uiIDEvent, DWORD dwTime)
    {
       MessageBox(NULL, TEXT("MessageBox die jede Sekunde einmal auftaucht!), NULL, 0);
    }
    


  • ok vielen dank
    sorry, hatte grade keinen Compiler zur Hand



  • hi
    ich habe ein ähnliches Problem.
    hab mal das von oben als Beispiel genommen
    Warum funktioniert das so nicht?

    #include <windows.h>
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    void CALLBACK TimerProc(HWND hWnd, UINT uiMsg, UINT uiIDEvent, DWORD dwTime) 
       { 
       MessageBox(NULL,"MessageBox die jede Sekunde einmal auftaucht!", "titel", 0); 
    }   
    
    int main()
    {    
       SetTimer(NULL, 0, 5000 /*Millisekunden*/, TimerProc);  
       Sleep(10000);
       return 0;
    }
    


  • Was soll denn das?
    1. Die MessageBox wird nicht jede Sekunde aufgerufen sondern alle 5000 Millisekunden sprich alle 5 Sekunden.
    2. Warum nutzt du eine Timerproc und noch Sleep?
    3. Das Programm wird nach dem Sleep sofort beendet also nach 10 sek.
    4. WAS funktioniert nicht?
    5. Das Programm macht das was es machen soll bzw. das was du ihm sagst 😉
    was erwartest du denn?

    schirrmie



  • Ich wollte ja auch 5 Sekunden.
    Ich habe erwartet das das Programm alle 5 Sekunden
    eine MessageBox ausgibt, was es aber nicht tut.
    Das Sleep habe ich eingefügt weil ich gehört habe,
    das das Programm dann nicht gleich beendet werden darf
    sondern man ein Sleep einfügen muss.
    Maxi1


Anmelden zum Antworten