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


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

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

Чтобы подключить фильтр - процедуру PagePaintHook

  1. Установите флажок PSD_ENABLEPAGEPAINTHOOK в члене Flags структуры PAGESETUPDLG.
  2. Определите адрес фильтр - процедуры в члене lpfnPagePaintHook.

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

Сообщение Предназначение
WM_PSD_PAGESETUPDLG Диалоговое окно собирается рисовать макет страницы. Фильтр - процедура может использовать это сообщение, чтобы подготовиться к рисованию содержания макета.
WM_PSD_FULLPAGERECT Диалоговое окно собирается рисовать макет страницы. Это сообщение определяет границы прямоугольника макета.
WM_PSD_MINMARGINRECT Диалоговое окно собирается рисовать макет страницы. Это сообщение определяет прямоугольник поля страницы.
WM_PSD_MARGINRECT Диалоговое окно собирается рисовать  прямоугольник с полями.
WM_PSD_GREEKTEXTRECT Диалоговое окно собирается рисовать имитацию текста в прямоугольнике с полями.
WM_PSD_ENVSTAMPRECT Диалоговое окно собирается рисовать в прямоугольнике почтовой марки  макета конверта. Это сообщение отправляется только для конвертов.
WM_PSD_YAFULLPAGERECT Диалоговое окно собирается рисовать узел адреса возврата макета конверта. Это сообщение отправляется для конвертов и других размеров бумаги.

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

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

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

Назад в оглавление темы
На главную страницу темы

Hosted by uCoz