|
Function TPrtTest3.MMtoPrintPixel(InputPoint:TPoint):TPoint;
Begin
Result.x:=MMtoPrintPixelX(InputPoint.x);
Result.y:=MMtoPrintPixelY(InputPoint.y);
end;
Function TPrtTest3.MMtoPrintPixelX(InputX:Integer):Integer;
Begin
if QueryPrintlogPixel then
Begin
pDDIx:=GetDeviceCaps(Printer.Handle,logPixelsX);
pDDIy:=GetDeviceCaps(Printer.Handle,logPixelsY);
QueryPrintlogPixel:=False;
end;
Result:=Trunc(InputX/253.8*pDDIx+0.5);
end;
Function TPrtTest3.MMtoPrintPixelY(InputY:Integer):Integer;
Begin
if QueryPrintlogPixel then
Begin
pDDIx:=GetDeviceCaps(Printer.Handle,logPixelsX);
pDDIy:=GetDeviceCaps(Printer.Handle,logPixelsY);
QueryPrintlogPixel:=False;
end;
Result:=Trunc(InputY/253.8*pDDIy+0.5);
end;
GetDeviceCaps:为Windows系统中取得指定设备信息的函数。函数的原型如下
int GetDeviceCaps(
HDC hdc, // 设置的句柄
int nIndex // 查询的设备参数。
);
其中,HDC为想要查询的打印机的句柄,logPixelsX、logPixelsY表示要查询的内容是打印机横向、纵向的每英寸的像素点数。
六、组件的注册
如果是在Delphi编写了这个组件的,则可以选择Run菜单下的Register ActiveX Server来进行这个组件的注册。
对于不开发机器的注册则可使用:点击“开始”→“运行”;在运行对话框中输入以下命令:
regsvr32 < 文件名 > 注册一个ActiveX控件
regsvr32 /u < 文件名 > 解除某ActiveX控件的注册
七、其它应用
组件的扩展:以上列出的仅仅是编写这个组件的框架,功能比较有限。根据需要我们还可以添加上画圆、椭圆,矩形,甚至图片等功能。有兴趣的读者就请自行添加。
因为,组件是采用COM的方式运行,所以,我们还在Window Script Hosts(WSH)中应用这个组件,结合WSH原有(通过ADO对象)访问外部数据库的能力,就可能做出在WINDOWS下功能强大的WSH的脚本程序。
源程序请到程序员杂志频道下载.
上一页 [1] [2] 没有相关教程
|