Функцию контроллера выполняет шаблон Observer, или обозреватель. Он следит за изменениями в View и Model.
Посылает информацию Наблюдателю
Сохраняет состояние для конкретного наблюдателя
attach(Observer *observer) добавляет нового обозревателя.
detach(Observer *observer) удаляет старого обозревателя.
//текст часов и кнопки, меняющей цвет фона
Прототип - описание интерфейса функции.
Прототип окна:
Цикл, обрабатывающий по одному сообщению из стека, называется loop.
Контекст устройства – это внутренняя структура данных, которая определяет набор графических объектов и их атрибутов. Можно говорить о контексте на дисплее, на принтере и контексте в памяти.
Отображать графику можно двумя способами:
1) Сразу рисовать в окне
2) Сначала очищать область рисования, и только потом – рисовать.
UpdateWindow генерирует сообщения WinPaint, которое принуждает перерисовывать окно.
InvalidateRact – функция для генерации сообщений WinPaint, которое принуждает перерисовывать окно из любой точки приложения.
Если занулить дескриптор устройства, то рисовать мы будем не в окне, а на самом устройстве. Такое можно реализовать только в С++(но зачем?).