4.31 - Настройка макета страницы

Диалоговое окно Параметры страницы (Page Setup) включает в себя изображение макета страницы, который показывается, как выбор пользователя воздействуют на вид распечатки выводимых данных. Изображение состоит из прямоугольника, который представляет собою выбранный тип бумаги или конверта, с прямоугольником пунктира, представляющим текущие поля, а неполные символы (греческий текст) показывают, как будет смотреться текст на напечатанной странице.

Когда Вы вызываете функцию PageSetupDlg, Вы можете предоставить фильтр - процедуру PagePaintHook, чтобы настроить вид макета страницы.

Чтобы разрешать действия фильтр - процедуре PagePaintHook.

1. Установите флажок PSD_ENABLEPAGEPAINTHOOK в элементе Flags структуры PAGESETUPDLG.

2. Установите адрес фильтр - процедуры в элементе lpfnPagePaintHook.

Всякий раз, когда диалоговое окно собирается чертить содержание макета страницы, фильтр - процедура принимает следующие сообщения в порядке, в котором они перечислены:

Если фильтр - процедура возвращает значение ИСТИНА (TRUE) для любого из первых трех сообщений в порядке следования прорисовки (WM_PSD_PAGESETUPDLG, WM_PSD_FULLPAGERECT или WM_PSD_MINMARGINRECT) диалоговое окно больше не посылает сообщения и не прорисовывает макет страницы до тех пор, пока в следующий раз система не потребуется перерисовать макет страницы. Если фильтр - процедура возвращает ЛОЖЬ (FALSE) для всех этих трех сообщений, диалоговое окно посылает остающиеся сообщения в порядке следования прорисовки.

Если фильтр - процедура возвращает значение ИСТИНА (TRUE) для любого из остающихся сообщений в порядке следования прорисовки, диалоговое окно не выводит соответствующую часть макета страницы. Если фильтр - процедура возвращает значение ЛОЖЬ (FALSE) для любого из этих сообщений, диалоговое окно выводит эту часть макета страницы.

Чтобы не дать диалоговому окну рисовать содержание макетов страниц, вы можете установить флажок PSD_DISABLEPAGEPAINTING. Этот флажок не воздействует на вашу фильтр - процедуру PagePaintHook, которая все еще принимает все WM_PSD_* сообщения и может выводить содержание макета страницы.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Владимир Соковиков - 19.03.2002