Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Урок 7. Работа с таймером / Уроки MFC / Visual C++
Visual C++. MFC Урок 7. Работа с таймером
Продолжим развитие нашей программы.
Прежде всего обсудим, что делает таймер. После установки таймер начинает "тикать". Это означает, что ваша программа получает через определённый промежуток времени сообщение WM_TIMER. В обработчике этого сообщения можно написать любой код. Важно, что код обработчика будет выполняться через определённые промежутки времени.
Сейчас мы с вами посмотрим, как можно в нашей программе запустить таймер. Прежде всего мы должны его создать. Для этого конструктор нашего класса CMyMainWnd добавите следующий код:
Функция SetTimer имеет несколько параметров. Первый (у нас он равен 1) - это идентификатор таймера. Второй (1000 в нашем случае) - это через сколько миллисекунд таймер тикает. 1000 означает что раз в секунду, 500 - что два раза в секунду. Третий параметр ставим в NULL. Это означает, что мы будем обрабатывать сообщение WM_TIMER для нашего таймера в функции OnTimer нашего оконного класса. Но в принципе третий параметр - это адрес функции-обработчика.
Таймер добавили, теперь надо написать обработчик. Как вы уже знаете, для этого вы должны сделать три действия - добавить соответствующий метод в класс, написать его реализацию и добавить соответствующий макрос в карту сообщений.
Запускаем программу и прислушиваемся. Каждую секунду должен издаваться звук beep. Но, несмотря на то, что программа работает, надо ещё в конце программы таймер убить. Для этого вносим класс код для деструктора:
~CMyMainWnd(){
KillTimer(1);
}
У метода KillTimer один параметр - это идентификатор таймера. Ставим тут 1 (ведь наш таймер имеет именно такой идентификатор).