Lizard |
Отправлено: 03.06.2005, 07:17 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 20
|
Добрый день!
Вопрос такой: как определить минимальные поля принтера (как в WORD’е, когда устанавливаешь поля страницы = 0 он предлагает исправить на минимальные).
|
|
GIZMO |
Отправлено: 03.06.2005, 08:22 |
|
Машинист паровоза
Группа: Участник
Сообщений: 174
|
QUOTE (Lizard @ 03/06/2005, 07:17) | Добрый день!
Вопрос такой: как определить минимальные поля принтера (как в WORD’е, когда устанавливаешь поля страницы = 0 он предлагает исправить на минимальные). |
См. GetDeviceCaps...
|
|
Lizard |
Отправлено: 04.06.2005, 06:36 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 20
|
Вот что придумал
CODE |
void __fastcall TForm1::FormCreate(TObject *Sender)
{
int PhysicalWidth, PhysicalHeight, HorzRes, VertRes, xOffset, yOffset;
double Top, Bottom, Left, Right, millimeter = 0.04234388366125; //для перевода пикселя в миллиметры
PhysicalWidth = GetDeviceCaps(Printer()->Handle, PHYSICALWIDTH);
PhysicalHeight = GetDeviceCaps(Printer()->Handle, PHYSICALHEIGHT);
HorzRes = GetDeviceCaps(Printer()->Handle, HORZRES);
VertRes = GetDeviceCaps(Printer()->Handle, VERTRES);
xOffset = GetDeviceCaps(Printer()->Handle, PHYSICALOFFSETX);
yOffset = GetDeviceCaps(Printer()->Handle, PHYSICALOFFSETY);
Top = yOffset * millimeter;
Bottom = ( PhysicalHeight — yOffset — VertRes ) * millimeter;
Left = xOffset * millimeter;
Right = ( PhysicalWidth — xOffset — HorzRes ) * millimeter;
Label1->Caption = Top;
Label2->Caption = Bottom;
Label3->Caption = Left;
Label4->Caption = Right;
}
|
Кому не лень проверти код и результаты, напишите что получилось (у меня все совпадает).
Отредактировано Lizard — 04/06/2005, 08:28 |
|
|