|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
Print Dialog Box
The Print dialog box lets the user select options for a particular print job. For example, the user can specify the printer to use, the range of pages to print, and the number of copies.
You create and display a Print dialog box by initializing a PRINTDLG structure and passing the structure to the PrintDlg function. The following illustration shows a typical Print dialog box.
If the user clicks the OK button, PrintDlg returns TRUE and uses the PRINTDLG structure to return information about the user's selections. For example, the hDevMode and hDevNames members typically return global memory handles for DEVMODE and DEVNAMES structures. You can use the information in these structures to create a device context or an information context for the selected printer.
If the user cancels the Print dialog box or an error occurs, PrintDlg returns FALSE. You can determine the cause of an error by using the CommDlgExtendedError function to retrieve the extended error value. The Print dialog box includes a Print Range group of radio buttons that indicate whether the user wants to print all pages, a range of pages, or only the selected text. Before calling PrintDlg, you can set one of the PD_ALLPAGES, PD_SELECTION, or PD_PAGENUMS flags to indicate which button is initially selected. When PrintDlg returns TRUE, the function sets one of these flags to indicate the user's selections. If PD_PAGENUMS is set, the nFromPage and nToPage members of the PRINTDLG structure contain the starting and ending pages specified by the user. To disable the Pages radio button and its associated "From:" and "To:" edit controls, set the PD_NOPAGENUMS flag. To disable the Selection radio button, set the PD_NOSELECTION flag.
The dialog box includes an edit control in which the user can type the number of copies to print. If the hDevMode member of the PRINTDLG structure is non-NULL, the dmCopies member of the DEVMODE structure specifies the initial value for this edit control. If hDevMode is NULL, the nCopies member of the PRINTDLG structure specifies the initial value. When PrintDlg returns, nCopies typically indicates the number of copies specified by the user. However, if you set the PD_USEDEVMODECOPIESANDCOLLATE flag when you create the dialog box, nCopies is always set to 1 on return and the dmCopies member of DEVMODE indicates the number of copies to print.
The Collate check box indicates whether the user wants to collate the pages if multiple copies are being printed. The PD_COLLATE flag is set if the Collate check box is checked. If your application does not support multiple copies or simulated collation, set the PD_USEDEVMODECOPIESANDCOLLATE flag in the Flags member of the PRINTDLG structure. This disables the Collate check box and the "Number of Copies:" edit control unless the printer driver supports multiple copies and collation.
The Print To File check box indicates whether the user wants to send output to a file rather than to a printer. You can set the PD_PRINTTOFILE flag so the check box is initially checked. To hide the check box, set the PD_HIDEPRINTTOFILE flag. To disable it, set the PD_DISABLEPRINTTOFILE flag. If the user selects the Print To File option, PrintDlg sets the PD_PRINTTOFILE flag and returns "FILE:" at the offset indicated by the wOutputOffset member of the DEVNAMES structure. When you call the StartDoc function to start the printing operation, specify this "FILE:" string in the lpszOutput member of the DOCINFO structure. Specifying this string causes the print subsystem to query the user for the name of the output file.
By default, the Print dialog box initially displays information about the current default printer. You can direct it to display information for another installed printer by initializing a DEVMODE or DEVNAMES structure and assigning the global memory handle for the structure to the hDevMode or hDevNames member. The device name you specify in the dmDeviceName member of the DEVMODE structure or in the wDriverOffset member of the DEVNAMES structure must identify a printer device that is also listed in the [Devices] section of the WIN.INI file. If the device is not listed, PrintDlg returns an error.
You can direct PrintDlg to create a device context or information context for the printer by setting the PD_RETURNDC or PD_RETURNIC flag in the Flags member of the PRINTDLG structure. The function returns the handle of the device context or information context in the hDC member. If you use the PD_RETURNDC flag, you can use the device context to generate output for the printer. To retrieve information about the default printer without displaying the Print dialog box, set the PD_RETURNDEFAULT flag. In this case, PrintDlg returns immediately after setting the hDevMode and hDevNames members to handles for structures containing the information.
By default, PrintDlg displays message boxes when errors occur. For example, the function displays an error message if no printers are installed. To prevent the function from displaying these warning messages, set the PD_NOWARNING flag.
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
Диалоговый Ящик Отпечатка
Диалоговый ящик Отпечатка позволяет выборы выбора потребителя для конкретной работы отпечатка. Например, потребитель может определить принтер, чтобы использование, дипазон страниц, чтобы отпечаток, и количество копий.
Вы создаете и отображаете диалоговый ящик Отпечатка инициализируя структуру PRINTDLG и передавая структуру в функцию PrintDlg. Следующая иллюстрация показывает диалоговый ящик типичного Отпечатка.
Если пользователь щелкает кнопку OK, PrintDlg возвращает ИСТИНУ и использует структуру PRINTDLG, чтобы возвращать информацию о выборах пользователя. Например, hDevMode и участники hDevNames обычно возвращают глобальные ручки памяти для DEVMODE и структур DEVNAMES. Вы можете использовать информацию в этих структурах, чтобы создавать контекст устройства или информационный контекст для выбранного принтера.
Если пользователь отменяет диалогового блока Распечатки или ошибка происходит, ЛОЖЬ возврата PrintDlg. Вы можете определить причину ошибки используя функцию CommDlgExtendedError, чтобы извлекать расширенную величину ошибки. Диалоговый блок Распечатки включает группу Дипазона Распечатки радио кнопок, которая указывает хочет пользователь печатать все страницы, дипазон страниц, или только выбранный текст. Перед вызовом PrintDlg, Вы можете установить один из PD_ALLPAGES, PD_SELECTION, или флагов PD_PAGENUMS, чтобы указывать, что какая кнопка первоначально выбрана. Когда ИСТИНА возврата PrintDlg, функциональные комплекты один из этих флагов, чтобы указывать выборы пользователя. Если PD_PAGENUMS установлен, nFromPage и участники nToPage структуры PRINTDLG содержат стартовое и окончание страниц определенных пользователем. Для того, чтобы выводить из строя радио кнопку Страниц и связанное и элементы управления редактирования "На:" "Из:", установите флаг PD_NOPAGENUMS. Для того, чтобы выводить из строя радио кнопку Выбора, установите флаг PD_NOSELECTION.
Диалоговый блок включает управление редактирования в котором пользователь может набрать количество копий, чтобы печататься. Если элемент hDevMode структуры PRINTDLG не-НЕДЕЙСТВИТЕЛЕН, элемент dmCopies структуры DEVMODE определяет начальную величину для этого управления редактирования. Если hDevMode НЕДЕЙСТВИТЕЛЕН, элемент nCopies структуры PRINTDLG определяет начальную величину. Когда возврат PrintDlg, nCopies обычно указывает количество копий определенных пользователем. Тем не менее, если Вы установили бы флаг PD_USEDEVMODECOPIESANDCOLLATE когда Вы создаете диалогового блока, nCopies всегда установлен на 1 в возврате и элемент dmCopies DEVMODE указывает количество копий, чтобы печататься.
Контрольный блок Collate указывает хочет пользователь сортировать страницы если многочисленные копии печатаются. Флаг PD_COLLATE установлен если контрольный блок Collate проверен. Если ваше приложение не поддерживает многочисленные копии или сымитировавшие сопоставление, установите флаг PD_USEDEVMODECOPIESANDCOLLATE в элементе Флагов структуры PRINTDLG. Это выводит из строя контрольного блока Collate и управление редактирования "Количества Копий:" если драйвер принтера не поддерживает многочисленные копии и сопоставление.
Распечатка На контрольном блоке Файла указывает хочет пользователь посылать выход в файл а не в принтер. Вы можете установить флаг PD_PRINTTOFILE, так что контрольный блок первоначально проверен. Для того, чтобы прятать контрольного блока, установите флаг PD_HIDEPRINTTOFILE. Для того, чтобы выводить из строя это, установите флаг PD_DISABLEPRINTTOFILE. Если пользователь выбирается Распечатку На опции Файла, PrintDlg устанавливает флаг PD_PRINTTOFILE и возвращает "ФАЙЛ:" в смещении указанном элементом wOutputOffset структуры DEVNAMES. Когда Вы называете функцию StartDoc, чтобы запускать печатающую операцию, определите эту строку "ФАЙЛА:" в элементе lpszOutput структуры DOCINFO. Определение этой строки вызывает подсистему распечатки на запрос пользователь для имени выходного файла.
По умолчанию, диалоговый блок Распечатки первоначально отображает информацию о текущем по умолчанию принтере. Вы можете направить это, чтобы отображать информацию для другого установившее принтер инициализируя DEVMODE или структуру DEVNAMES и назначая глобальную ручку памяти для структуры в hDevMode или элемент hDevNames. Имя устройства, которое Вы определяете в элементе dmDeviceName структуры DEVMODE или в элементе wDriverOffset структуры DEVNAMES должно идентифицировать устройство принтера, которое также указано в [Devices] секции файла WIN.INI. Если устройство не указано, PrintDlg возвращает ошибку.
Вы можете направить PrintDlg, чтобы создавать контекст устройства или информационного контекста для принтера устанавливая PD_RETURNDC или флаг PD_RETURNIC в элементе Флагов структуры PRINTDLG. Функция возвращает ручку контекста устройства или информационного контекста в элемент hDC. Если Вы используете флаг PD_RETURNDC, Вы можете использовать контекст устройства, чтобы генерировать выход для принтера. Для того, чтобы извлекать информацию о по умолчанию принтере не отображая диалогового блока Распечатки, установите флаг PD_RETURNDEFAULT. В этом случае, возврат PrintDlg немедленно после установка hDevMode и участники hDevNames ручек для структур, содержащих информацию.
По умолчанию, PrintDlg отображает блоков сообщения когда ошибки происходят. Например, функция отображает сообщение ошибки если никакие принтеры не установлены. Для того, чтобы мешать функцию чтобы отображать это предупреждение сообщений, установите флаг PD_NOWARNING.
|
|
|
|
| |