Visual Studio C++: как добавить события таймера к MFC dialog-based программе |
Написал microsin | |
11.06.2009 | |
См. help по MFC Library Reference, CWnd::SetTimer, а также "Таймеры в приложениях MFC" http://www.cyberguru.ru/cpp-sources/classes-mfc/tajmery-v-prilozheniyakh-mfc.html. Процесс по шагам: 1. View -> Class View, выбираем класс диалога (например, CmyDlg). 2. Правой кнопой жмем на классе, выбираем Add -> Add Function..., Return type выбираем void, в Parameter type все стираем, в Function name впечатываем StartTimer, жмем Finish. 3. Таким же образом добавляем к классу функцию void CmyDlg::StopTimer(). Кстати, эту функцию можно не добавлять, если остановка таймера не нужна (например, запускаем таймер при старте приложения, и таймер работает всегда, пока приложение не закроют). 4. Добавляем глобальную переменную UINT_PTR m_nTimer в модуль класса CmyDlg (в начало файла myDlg.cpp). Эта переменная может понадобиться, если нам надо остановить таймер с помощью функции KillTimer. 5. Добавляем обработчик сообщения WM_TIMER к классу CmyDlg. Для этого в Class View выбираем класс CmyDlg, выбираем в меню View -> Properties Window (F4), жмем кнопку Messages, ищем в списке событие WM_TIMER, привязываем к нему обработчик OnTimer.
6. Теперь добавляем код для всех функций.
void CmyDlg::StartTimer(void)
void CmyDlg::StopTimer(void)
7. Запускаем таймер при старте приложения. Для этого в код BOOL CmyDlg::OnInitDialog() добавляем строчку: |