Структура PRINTDLG_TYPE

Type PRINTDLG_TYPE
  lStructSize As Long
  hwndOwner As Long
  hDevMode As Long
  hDevNames As Long
  hdc As Long
  flags As Long
  nFromPage As Integer
  nToPage As Integer
  nMinPage As Integer
  nMaxPage As Integer
  nCopies As Integer
  hInstance As Long
  lCustData As Long
  lpfnPrintHook As Long
  lpfnSetupHook As Long
  lpPrintTemplateName As String
  lpSetupTemplateName As String
  hPrintTemplate As Long
  hSetupTemplate As Long
End Type

Структура PRINTDLG_TYPE хранит необходимую информацию для использования в общем диалоговом окне Печать функцией PrintDlg

Состав структуры

lStructSize
Размер структуры в байтах
hwndOwner
Дескриптор окна, которое открывает диалоговое окно. Можно использовать 0
hDevMode
Дескриптор глобального блока памяти, содержащего структуру DEVMODE, которая используется для инициализации параметров принтера. Если содержимое этого поля указать как NULL, после возвращения из функции PrintDlg поле будет содержать идентификатор глобального блока памяти, заказанного функцией. В этом блоке памяти будет расположена структура DEVMODE, заполненная выбранными параметрами принтера
hDevNames
Дескриптор глобального блока памяти, содержащего структуру DEVNAMES, содержащей три текстовые строки - имя драйвера принтера, имя принтера, имя порта вывода, к которому подключен принтер. Если содержимое этого поля указать как NULL, после возвращения из функции PrintDlg поле будет содержать идентификатор глобального блока памяти, заказанного функцией для структуры DEVNAMES. В структуре будут находиться строки, соответствующие выбранному принтеру
hdc
Контекст устройства или информационный контекст, в зависимости от Flags
flags
Комбинация флагов, определящая различные настройки для создания диалогового окна:
PD_ALLPAGES = &H0
Выбрана радиокнопка Все в рамке Диапазон страниц
PD_COLLATE = &H10
Переключатель "Collate" должен находиться во включенном состоянии (если поддерживается)
PD_DISABLEPRINTTOFILE = &H80000
Блокируется переключатель "Печать в файл"
PD_ENABLEPRINTHOOK = &H1000
Разрешается использовать функцию фильтра, заданную в параметре lpfnPrintHook для обработки сообщений
PD_ENABLEPRINTTEMPLATE = &H4000
Разрешается использовать шаблон диалоговой панели "Печать", определяемой полями hInstance и lpPrintTemplateName
PD_ENABLEPRINTTEMPLATEHANDLE = &H10000
Поле hPrintTemplate содержит идентификатор блока памяти с загруженным шаблоном диалоговой панели "Печать". Содержимое поля hInstance игнорируется
PD_ENABLESETUPHOOK = &H2000
Разрешается использовать функцию фильтра, заданную в параметре lpfnSetupHook для обработки сообщений
PD_ENABLESETUPTEMPLATE = &H8000
Разрешается использовать шаблон диалоговой панели "Print Setup", определяемой полями hInstance и lpSetupTemplateName
PD_ENABLESETUPTEMPLATEHANDLE = &H20000
Поле hSetupTemplate содержит идентификатор блока памяти с загруженным шаблоном диалоговой панели "Print Setup". Содержимое поля hInstance игнорируется
PD_HIDEPRINTTOFILE = &H100000
Переключатель "Печать в файл" удаляется из диалоговой панели
PD_NONETWORKBUTTON = &H200000
Не выводит кнопки, связанные с сетьюD
PD_NOPAGENUMS = &H8
Переключатель "Страницы" и связанные с ним текстовые поля должны находиться в заблокированном состоянии
PD_NOSELECTION = &H4
Переключатель "Selection" должен находиться в заблокированном состоянии
PD_NOWARNING = &H80
Отмена вывода сообщения о том, что в системе не установлен принтер по умолчанию
PD_PAGENUMS = &H2
Переключатель "Страницы" в диалоговой панели "Печать" должен находиться во включенном состоянии, при этом предполагается что необходимо распечатать отдельные страницы текста, но не выделенный фрагмент текста или весь текст
PD_PRINTSETUP = &H40
При вызове функции PrintDlg вместо диалоговой панели "Печать" отображается диалоговая панель "Print Setup"
PD_PRINTTOFILE = &H20
Переключатель "Печать в файл" должен находиться во включенном состоянии
PD_RETURNDC = &H100
Функция PrintDlg должна вернуть в поле hDC идентификатор контекста устройства, который можно использовать для печати
PD_RETURNDEFAULT = &H400
После возвращения из функции PrintDlg поля hDevMode и hDevNames будут содержать идентификаторы блоков памяти структур DEVMODE и DEVNAMES, заполненных параметрами принтера, выбранного по умолчанию. Если указан флаг PD_RETURNDEFAULT, перед вызовом функции PrintDlg поля hDevMode и hDevNames должны содержать значения NULL, в противном случае функция вернет признак ошибки
PD_RETURNIC = &H200
Функция PrintDlg должна вернуть в поле hDC идентификатор информационного контекста, который можно использовать для получения информации о принтере
PD_SELECTION = &H1
Переключатель "Selection" в диалоговой панели "Печать" должен находиться во включенном состоянии, при этом предполагается что необходимо распечатать выделенный фрагмент текста, но не весь текст или отдельные страницы
PD_SHOWHELP = &H800
Отобразить кнопку "Помощь"
PD_USEDEVMODECOPIES = &H40000
Элемент управления "Копии" блокируется, если принтерный драйвер не способен печатать несколько копий
PD_USEDEVMODECOPIESANDCOLLATE = &H40000
If the printer does not automatically support multiple copies or collation, disable the corresponding options in the dialog box. The number of copies to print and the collation setting will be placed into hDevMode. The information returned to this structure will specify the number of pages and the collation which the program must print with -- the printer will print the copies or collate itself.
nFromPage
Начальное значение для инициализации органа управления "From" диалоговой панели "Print". Используется только в том случае, если в поле Flags указан флаг PD_PAGENUMS. Максимальное значение для поля nFromPage составляет 0xfffe. После возвращения из функции PrintDlg это поле содержит номер страницы документа, с которой должна начинаться печать
nToPage
Начальное значение для инициализации органа управления "To" диалоговой панели "Print". Используется только в том случае, если в поле Flags указан флаг PD_PAGENUMS. Максимальное значение для поля nFromPage составляет 0xfffe. После возвращения из функции PrintDlg это поле содержит номер страницы документа, до которой должна выполняться печать
nMinPage
Минимальное количество страниц, которое можно задать при помощи органов управления "From" и "To"
nMaxPage
Максимальное количество страниц, которое можно задать при помощи органов управления "From" и "To"
nCopies
Число копий, если поле hDevMode содержит значение NULL
hInstance
Дескриптор модуля, который содержит шаблоны диалоговых панелей. Используется только в том случае, если указаны флаги PD_ENABLEPRINTTEMPLATE или PD_ENABLESETUPTEMPLATE
lCustData
Произвольные данные, которые приложение может передать функции фильтра
lpfnPrintHook
Адрес функции фильтра для диалоговой панели "Печать"
lpfnSetupHook
Адрес функции фильтра для диалоговой панели "Print Setup"
lpPrintTemplateName
Адрес текстовой строки, содержащей имя ресурса для шаблона диалоговой панели "Печать". Для использования этого поля необходимо указать флаг PD_ENABLEPRINTTEMPLATE
lpSetupTemplateName
Адрес текстовой строки, содержащей имя ресурса для шаблона диалоговой панели "Print Setup". Для использования этого поля необходимо указать флаг PD_ENABLESETUPTEMPLATE
hPrintTemplate
Дескриптор блока памяти, содержащего предварительно загруженный шаблон диалоговой панели "Печать". Для использования этого поля необходимо указать флаг PD_ENABLEPRINTTEMPLATEHANDLE
hSetupTemplate
Дескриптор блока памяти, содержащего предварительно загруженный шаблон диалоговой панели "Print Setup". Для использования этого поля необходимо указать флаг PD_ENABLESETUPTEMPLATEHANDLE

Используется в

PrintDlg