Диалоговое окно Параметры страницы (Page Setup) включает в себя изображение макета страницы, который показывает, как выбор пользователя воздействуют на вид распечатки выводимых данных. Изображение состоит из прямоугольника, который представляет собою выбранный тип бумаги или конверта, с прямоугольником пунктира, представляющим текущие поля, а неполные символы (имитация текста) показывают, как будет смотреться текст на напечатанной странице.
Когда вы вызываете функцию PageSetupDlg, вы можете предусмотреть фильтр - процедуру PagePaintHook, чтобы настраивать вид макета страницы.
Чтобы подключить фильтр - процедуру PagePaintHook
Всякий раз, когда диалоговое окно собирается рисовать содержание макета страницы, фильтр - процедура принимает следующие сообщения в порядке, в котором они перечислены.
Сообщение | Предназначение |
---|---|
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_* сообщения и может рисовать содержание макета страницы.