На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

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);



Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz