C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Урок 8. Добавляем второй таймер / Уроки MFC / Visual C++

Visual C++. MFC
Урок 8. Добавляем второй таймер

Давайте теперь посмотрим, что мы должны сделать, если нам надо работать одновременно с двумя таймерами. Проблема здесь в том, что обработчик для таймера у нас один, но мы хотим производить разные действия при тиканьи одного таймера и при тиканьи другого. Для этого мы должны их как-то различать. Но у нас для этого служит идентификатор таймера (первый параметр в методе SetTimer). Его-то мы и используем.

Добавляем в программу ещё один таймер и сразу пишем код в деструкторе класса для уничтожения нового таймера:

CMyMainWnd(){
    Create(NULL,"My title");
    SetTimer(1, 1000, NULL);
    SetTimer(2, 3000, NULL);
}
~CMyMainWnd(){
    KillTimer(1);
    KillTimer(2);
}

Идентификатор нового таймера 2 , и он тикает раз в три секунды. Отдельный обработчик для второго таймера писать не надо. А надо изменить наш старый обработчик для таймера следующим образом:

void CMyMainWnd::OnTimer(UINT nIDEvent){
    if(nIDEvent==1)
        MessageBeep(-1);
    else
        SetWindowText("Title");
}

У метода OnTimer есть параметр типа UINT. Мы его раньше не использовали, а теперь используем. Это и есть идентификатор таймера, для которого мы обрабатываем сообщение WM_TIMER. Если сообщение от первого таймера, то издаём сигнал, а если от второго, то меняем заголовок окна на "Title".

Запускаем программу. Звук раздаётся раз в секунду, и через три секунды заголовок окна меняется.

Новый проект

С этим занятием всё.