92978b58

Сообщение WM_PAINT


При обработке сообщения WM_PAINT функция окна нашего приложения рисует в окне Client Window строки значений параметров метрик шрифта.

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

Затем начальные координаты для вывода текста устанавливаются так, как это показано ниже:

cxCurrentPosition = -nXScrollPos * cxChar + cxChar; cyCurrentPosition = cyClient;

Вывод текста всегда начинается в верхней части окна, так как в переменную cyCurrentPosition записывается значение высоты окна cyClient. Что же касается оси X, то текущая позиция по этой оси определяется с учетом текущей позиции движка горизонтальной полосы просмотра. Чем эта позиция больше (т. е. чем правее расположен движок), тем меньше значение позиции вывода текста.

Заметим, что координата текущей позиции вывода текста по оси X может принимать отрицательное значение. При этом соответствующая часть строки выйдет за левую границу окна и не будет отображаться.

Далее обработчик сообщения WM_PAINT несколько раз вызывает функции PrintString и PrintLong, отображающие, соответственно, текстовые и числовые параметры метрик шрифта. Эти функции после рисования одной строки текста изменяют значение текущей позиции вывода по осиY.

Перед тем как вернуть управление, обработчик сообщения WM_PAINT восстанавливает шрифт и возвращает пространство отображения.




Начало  Назад  Вперед