>Screen.PixelsPerInch与显示器的分辨率800*600等有什么关系?
Screen.PixelsPerInch与显示器的分辨率没有必然的联系,它表示的是在垂直方向每一个逻辑
英寸单位含有的象素数目
>GetDeviceCaps(Printer.Handle,LOGPIXELSX)是不是打印机的分辨率?
是返回打印机每英寸相素值
>Screen.PixelsPerInch与GetDeviceCaps(Printer.Handle,LOGPIXELSX)的值是同类的吗?
不同类,正如上面解释的那样;但是利用二者之间的关系,我们可以得到打印纸的宽度
与高度 :
function GetPageWidth: Integer;
begin
Result := Screen.PixelsPerInch*GetDeviceCaps(Printer.Handle, PHYSICALWIDTH) div GetPixelsPerInchX);
end;
function GetPageHeight: Integer;
begin
Result := Screen.PixelsPerInch*GetDeviceCaps(Printer.Handle, PHYSICALHEIGHT) div GetPixelsPerInchY);
end;
function GetPixelsPerInchX: Integer;
begin
Result := GetDeviceCaps(Printer.Handle, LOGPIXELSX)
end;
function GetPixelsPerInchY: Integer;
begin
Result := GetDeviceCaps(Printer.Handle, LOGPIXELSY)
end;