Как использовать таймер в приложении MFC Dialog? - PullRequest
15 голосов
/ 23 августа 2011

Я разрабатываю приложение на основе MFC Dialog в Visual Studio 2008. Я хочу использовать таймер, который запускается при запуске приложения и продолжает работать и вызывает функцию, которая выполняет мою задачу? Как я могу это сделать?

Спасибо

Ответы [ 3 ]

22 голосов
/ 23 августа 2011

Просто используйте метод SetTimer и передайте два аргумента: ID таймера (любое число) и время ожидания в миллисекундах.Затем запишите OnTimer реализацию, и запись ON_WM_TIMER внутри BEGIN_MESSAGE_MAP...END_MESSAGE_MAP.

CWnd :: SetTimer принимает 3 параметра, но требуется только 2.Передайте третий аргумент как NULL.

CWnd :: OnTimer

3 голосов
/ 23 августа 2011
_AFXWIN_INLINE UINT_PTR CWnd::SetTimer(UINT_PTR nIDEvent, UINT nElapse,
    void (CALLBACK* lpfnTimer)(HWND, UINT, UINT_PTR, DWORD))

Вы можете захотеть сделать что-то вроде

UINT_PTR myTimer = SetTimer (1, 1000, null); // one event every 1000 ms = 1 s

и реагируйте на событие ON_TIMER в обработчике событий вашего окна:

void CMyView::OnTimer (UINT_PTR nIdEvent)
{
if (nIdEvent == 1)
    // handle timer event
}

В качестве альтернативы вы можете передать указатель на функцию, обрабатывающую события таймера. Сохраняя ручку к таймеру, вы можете отключить его, используя KillTimer (), если вам нужно.

1 голос
/ 23 августа 2011

Если вы хотите получить общее представление об использовании таймеров, просим вас перейти по этой ссылке и пройти пошаговую процедуру по работе с таймерами. После этого вы сможете легко использовать таймеры в своем приложении в любое время.

Ссылка: http://www.functionx.com/visualc/controls/timer.htm

Надеюсь, это поможет.

Приветствие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...