Программирование на Visual C++ с использованием MFC

Проект "Часы" (Clock.zip)

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

Кроме рисования в окне и получения текущего времени, программа иллюстрирует также использование нитей (thread, lightweight process). Нить в данном примере используется для периодической перерисовки окна. Для этого нить раз в секунду посылает окну сообщение WM_USER, используя функцию PostMessage:

::PostMessage( hWindow, // handle of destination window WM_USER, // message to send 0, 0 // arguments of message ); Обработчик сообщения WM_USER, определенный для окна приложения, просто вызывает метод "Invalidate()". Этот метод окна посылает окну сообщение WM_PAINT с соответствующими параметрами, при обработке которого окно перерисовывается.

Исходный текст проекта "Clock" (этот проект специально не дописан до конца, чтобы можно было поупражняться самостоятельно). Все изменения, внесенные в шаблон проекта (который создается Application Wisard'ом), сосредоточены в файлах