我在98下能设成功,但移到NT下就不行了,我页长为620,NT下设后为1980,98下也不为620,而是570多,请教高手为什么?
procedure tform_contrl.printerinitial;
var
ADevice, ADriver, APort: array[0..255] of Char;
DeviceHandle: THandle;
DevMode: PDeviceMode;
begin
//初始化打印机
Printer.PrinterIndex := Printer.PrinterIndex;
Printer.GetPrinter(ADevice, ADriver, APort, DeviceHandle);
if DeviceHandle = 0 then
begin
Raise Exception.Create('不能初始化打印机!');
exit;
end
else
DevMode := GlobalLock(DeviceHandle);
label1.Caption:=inttostr(printer.PageHeight);
if DeviceHandle <> 0 then
begin
with DevMode^ do
begin
dmPaperSize :=DMPAPER_USER; //;
dmPaperlength:= 620; //620
dmpaperwidth:=920; //920
Printer.SetPrinter(ADevice, ADriver, APort, DeviceHandle);
GlobalUnLock(DeviceHandle); end;
end;
label4.Caption:=inttostr(printer.PageHeight);
end;
procedure tform_contrl.printerinitial;
var
ADevice, ADriver, APort: array[0..255] of Char;
DeviceHandle: THandle;
DevMode: PDeviceMode;
begin
//初始化打印机
Printer.PrinterIndex := Printer.PrinterIndex;
Printer.GetPrinter(ADevice, ADriver, APort, DeviceHandle);
if DeviceHandle = 0 then
begin
Raise Exception.Create('不能初始化打印机!');
exit;
end
else
DevMode := GlobalLock(DeviceHandle);
label1.Caption:=inttostr(printer.PageHeight);
if DeviceHandle <> 0 then
begin
with DevMode^ do
begin
dmPaperSize :=DMPAPER_USER; //;
dmPaperlength:= 620; //620
dmpaperwidth:=920; //920
Printer.SetPrinter(ADevice, ADriver, APort, DeviceHandle);
GlobalUnLock(DeviceHandle); end;
end;
label4.Caption:=inttostr(printer.PageHeight);
end;
dmFields = DM_PAPERSIZE | DM_PAPERLENGTH | DM_PAPERWIDTH ; //C语言
/***********************************************************dmPaperSize :=DMPAPER_USER; //;
dmPaperlength:= 620; //620
dmpaperwidth:=920;