Структура 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