Сообщений 7    Оценка 1        Оценить  
Система Orphus

Safe Win32 Timer

Автор: Приходько Михаил aka Crusader Mike
Источник: CodeGuru

Исходные тексты

Этот код представляет собой удобный, надежный и быстрый способ использовать обычные Win32 таймера (те самые, которые WM_TIMER). Классы для использования:

  1. CTimerHost -- этот класс является источником "безопасных" таймерных нотификаций. Т.е. он не обладает гениальным недостатком обычного таймера, который оставляет WM_TIMER сообщения в очереди после вызова KillTimer. Этот класс должен быть использован и удален только из потока, т.к. он создает и использует окошко.
  2. CTimerThunk<...> -- представляет из себя "thunk" для приема нотификаций от CTimerHost.

Классы не используют поисков по картам, списка и т.п.

Пример использования:

#include "sf_timer.h"

// for example in your CApp
CTimerHost g_TimerHost;

class CMyClass
{
public:
    CMyClass() : m_Timer(g_TimerHost, this, OnTimer)
    {
        timer.SetTimer(500);
    }

    void Stop()
    {
        timer.KillTimer();
    }

    void OnTimer(DWORD dwTime) {}

protected:
    CTimerThunk<CMyClass>   m_Timer;
};

Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав.
    Сообщений 7    Оценка 1        Оценить