Problem mit - SetTimer - Timererzeugung / ausführung



  • So wiedermal ein Problemchen...

    Steh im Moment auf der Leitung.

    Wenn der Timer abgelaufen ist soll mir jeweils ein Punkt auf den Bildschirm (DOS BOX) gepinselt werden um Aktiviät anzuzeigen.
    Leider gibts keine Punkte jemand eine Idee worans liegen könnte.

    HWND windowHandle;
    windowHandle = GetConsoleWindow();
    SetTimer(windowHandle,777,1000,(TIMERPROC) message_write_point);
    
    void CALLBACK message_write_point(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime)
    {
    	printf(".");
    }
    


  • MSDN schrieb:

    When you specify a TimerProc callback function, the default window procedure calls the callback function when it processes WM_TIMER. Therefore, you need to dispatch messages in the calling thread, even when you use TimerProc instead of processing WM_TIMER.

    Da Du in einer Konsolenanwendung keine Nachrichtenschleife/kein Nachrichtenfenster hast, wird das nicht funktionieren.



  • Eine andere Idee wie ich das hinbekommen könnte ?



  • Wurde im Prinzip schon gesagt:

    Starte eine Messageloop, oder nimm 'nen eigenen Thread, den du dann seperat mit Sleep ausbremst.


Anmelden zum Antworten