Графический интерфейс GDI в Microsoft Windows


             

Контекст отображения для принтера


На первый взгляд, контекст отображения для принтера получить нетрудно - достаточно вызвать функцию CreateDC , указав имя драйвера, имя устройства и имя порта вывода, к которому подключен принтер:

HDC WINAPI CreateDC( LPCSTR lpszDriver, // имя драйвера LPCSTR lpszDevice, // имя устройства LPCSTR lpszOutput, // имя файла или порта вывода const void FAR* lpvInitData); // данные для инициализации

Созданный при помощи функции CreateDC контекст устройства следует удалить после использования, вызвав функцию DeleteDC :

BOOL WINAPI DeleteDC(HDC hdc);

Как мы уже говорили, параметр lpszDriver является указателем на строку символов, содержащую имя драйвера, обслуживающего физическое устройство. Имя драйвера совпадает с именем файла *.drv, содержащего драйвер. Этот драйвер находится в системном каталоге Windows.

Имя устройства lpszDevice - это название устройства.

Параметр lpszOutput указывает на структуру данных типа DEVMODE, используемую при инициализации устройства вывода. Если при работе с устройством нужно использовать параметры, установленные при помощи приложения Control Panel, параметр lpszOutput следует указать как NULL.

Однако как определить эти параметры?

Текущий принтер описан в файле win.ini в разделе [windows]:

[windows] ... ... device=HP LaserJet III,hppcl5a,LPT1: ...

Вы можете получить контекст отображения для текущего принтера, указав эти параметры функции CreateDC:

hdc = CreateDC("hppcl5a", "HP LaserJet III", "LPT1:", NULL);

Однако к компьютеру может быть подключено несколько принтеров. Например, к порту LPT1: может быть подключен лазерный принтер, а к порту LPT2: - матричный или струйный принтер.

Список подключенных принтеров, имена драйверов и портов ввода/вывода можно найти в разделе [devices] файла win.ini:

[devices] Epson FX-850=EPSON9,LPT1: HP LaserJet III=hppcl5a,LPT1:

Ваше приложение может получить параметры принтера, используемого по умолчанию, а также параметры всех установленных принтеров непосредственно из файла win.ini.


Содержание  Назад  Вперед