|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
Creating a Printer Device Context
An application can create a printer device context in one of two ways:
· Calling the PrintDlg function to display a common dialog box that allows the user to specify printer options, then creating a printer device context by using those options. · Creating a printer device context by using the default printer data from the WIN.INI file.
This section contains code demonstrating the latter method. To use the default printer, retrieve and parse the appropriate string from the WIN.INI file. This string is retrieved by calling the GetProfileString function and specifying the appropriate section and entry names. In the case of the default printer, this data is stored in the [windows] section and identified by the entry named device. The seventh line in the following excerpt from a WIN.INI file shows an entry for a Kodak® Diconix™ printer.
[windows] load= run= Beep=yes Spooler=yes NullPort=None device=Diconix,winspool,LPT1: CoolSwitch=1 BorderWidth=3 KeyboardSpeed=31 InitialKeyboardIndicators=2 CursorBlinkRate=530 DoubleClickSpeed=686 Programs=com exe bat pif cmd Documents= DeviceNotSelectedTimeout=15 TransmissionRetryTimeout=45 swapdisk= NetWarn=1 fPromptOnVerbose=FALSE fPromptOnWarning=FALSE
fPromptOnError=TRUE fPrintVerbose=FALSE fPrintFileLine=FALSE shell= ScreenSaveTimeOut=300 ScreenSaveActive=0 DebugOptions=2048
The following example shows how a printer device context was created by using the data from WIN.INI.
HDC hdcPrint; /* printer DC handle */ char szDevString[120]; /* array for WIN.INI data */ char *szPrinter, *szDriver; /* printer and driver names */ char *szPort; /* port name */ /* * Retrieve the printer, printer-driver, and * output-port names from WIN.INI. */ GetProfileString("windows", "device", ",,,", szDevString, 120); /* * Parse the string of names, setting ptrs
* as required. If the string contains the * required names, use them to create a * device context. */ if ((szPrinter = strtok(szDevString, (const char *) ",")) && (szDriver = strtok ((char *) NULL, (const char *) ", ")) && (szPort = strtok ((char *) NULL, (const char *) ", "))) hdcPrint = CreateDC(szDriver, szPrinter, szPort, NULL); /*
* Print a test page that contains the string * "PRINTER TEST" in the upper left corner. */ Escape(hdcPrint, STARTDOC, 8, "Test-Doc", NULL); TextOut(hdcPrint, 50, 50, "PRINTER TEST", 12); Escape(hdcPrint, NEWFRAME, 0, NULL, NULL); Escape(hdcPrint, ENDDOC, 0, NULL, NULL); /* Delete the printer DC. */ DeleteDC(hdcPrint);
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
Создание Контекста Устройства Принтера
Приложение может создать контекст устройства принтера одним из двух способов:
Вызывая функцию PrintDlg, чтобы отображать общий диалоговый ящик, который позволяет потребителя, чтобы определять выборы принтера, затем создавая контекст устройства принтера используя те выборы. Создавая контекст устройства принтера используя по умолчанию данные принтера из файла WIN.INI.
Эта секция содержит код, демонстрирующий последний метод. Для того, чтобы использовать по умолчанию принтер, извлеките и выполняйте грамматический разбор подходящую строку из файла WIN.INI. Эта строка извлечена вызовом функции GetProfileString и определяя подходящие имена секции и входа. В случае по умолчанию принтера, эти данные загружены в [windows] секцию и идентифицированы входом назвавшим устройство. Седьмая строка в следующем отрывке из файла WIN.INI показывает вход для Kodak Diconix принтер.
[windows] загружать= запускать= Beep=yes Spooler=yes NullPort=None device=Diconix,winspool,LPT1: exe дубинка CoolSwitch=1 BorderWidth=3 KeyboardSpeed=31 InitialKeyboardIndicators=2 CursorBlinkRate=530 DoubleClickSpeed=686 Programs=com pif cmd Подтверждать= DeviceNotSelectedTimeout=15 TransmissionRetryTimeout=45 swapdisk= NetWarn=1 fPromptOnVerbose=FALSE fPromptOnWarning=FALSE
оболочка= fPromptOnError=TRUE fPrintVerbose=FALSE fPrintFileLine=FALSE ScreenSaveTimeOut=300 ScreenSaveActive=0 DebugOptions=2048
Следующий пример показывает как контекст устройства принтера был создан использованием данных из WIN.INI.
HDC hdcPrint; /* ручка принтера DC */ символьный szDevString[120]; /* массив для данных WIN.INI */ символ *szPrinter, *szDriver; /* принтер и драйверные имена */ символ *szPort; /* имя порта */ /* * Извлеките принтер, принтер-драйвер, и * выходной-порт называется из WIN.INI. */ GetProfileString("windows", "УСТРОЙСТВО", ",,,", szDevString, 120); /* * Выполните грамматический разбор строку имен, устанавливающих ptrs
* как потребовалось. Если строка содержит the * необходимые имена, используют их, чтобы создавать a * контекст устройства. */ если ((szPrinter = strtok(szDevString, (const символ *) ",")) && (szDriver = strtok ((символ *) НЕДЕЙСТВИТЕЛЬНЫЙ, (const символ *) ", ")) && (szPort = strtok ((символ *) НЕДЕЙСТВИТЕЛЬНЫЙ, (const символ *) ", "))) hdcPrint = CreateDC(szDriver, szPrinter, szPort, НЕДЕЙСТВИТЕЛЬНЫЙ); /*
* Напечатайте страницу теста, которая содержит строку * "ТЕСТ ПРИНТЕРА" в верхнем левом углу. */ Переход(hdcPrint, STARTDOC, 8, "Test-Doc", НЕДЕЙСТВИТЕЛЬНЫЙ); TextOut(hdcPrint, 50, 50, "ТЕСТ ПРИНТЕРА", 12); Переход(hdcPrint, NEWFRAME, 0, НЕДЕЙСТВИТЕЛЬНЫЙ, НЕДЕЙСТВИТЕЛЬНЫЙ); Переход(hdcPrint, ENDDOC, 0, НЕДЕЙСТВИТЕЛЬНЫЙ, НЕДЕЙСТВИТЕЛЬНЫЙ); /* Удалите принтер DC. */ DeleteDC(hdcPrint);
|
|
|
|
| |