setwindowext 使用方法求教 ( 积分: 50 )

  • 主题发起人 主题发起人 uniworldus
  • 开始时间 开始时间
U

uniworldus

Unregistered / Unconfirmed
GUEST, unregistred user!
我在一个打印程序中使用了
setwindowext(handle,dpi,dpi);
但总报警:
[Error] print_file.pas(52): E2003 Undeclared identifier: 'setwindowext'
请问哪位高手能指点迷津:)
下面是我参照的程序:
——————————————————————————————————
http://www.richsearch.com/search/displ.aspx?lid=727554
********************************************************************
RE: 如何使屏幕内容与报表内容一致?
ID=727554, 发贴富翁: Kingron, 发贴时间:2001-11-13 2:29:00不知道你是怎么解决的,刚好找到到了一些资料,就是我以前所的那个函数:
如何在不同的打印分辨率下面打印?
下面给出一个函数,在调用这个函数之后,你就可以使用Font.Size来设置字体的大小而与打印机分辨率无关了。
注意必须在Printer.begin
Doc之后调用这个函数!
{-------------------------------------------------------------
Sets the logicaldo
ts per inch for the printer and sets the printer axes to point RIGHT anddo
WN. Thus (0,0) is at the top left corner of the page. Returns the page size in logical coordinates.
Note: Must be called AFTER Printer.begin
Doc.
--------------------------------------------------------------}
function SetPrinterScale(dpi : integer) : TPoint;
var
DeviceDpiX, DeviceDpiY : integer;
begin
with Printerdo
begin
SetMapMode(Handle, MM_ISOTROPIC);
SetWindowExt(Handle, dpi, dpi);
DeviceDpiX := GetDeviceCaps(Handle, LOGPIXELSX);
DeviceDpiY := GetDeviceCaps(Handle, LOGPIXELSY);
SetViewPortExt(Handle, DeviceDpiX, DeviceDpiY);
Result := Point(PageWidth, PageHeight);
with Canvasdo
begin
DPtoLP(Handle, Result, 1);
{ This API call is required... }
Font.PixelsPerInch := DPI;
{ ...to make this work. (Who knows why?) }
end;

end;
end;
 
我在一个打印程序中使用了
setwindowext(handle,dpi,dpi);
但总报警:
[Error] print_file.pas(52): E2003 Undeclared identifier: 'setwindowext'
请问哪位高手能指点迷津:)
下面是我参照的程序:
——————————————————————————————————
http://www.richsearch.com/search/displ.aspx?lid=727554
********************************************************************
RE: 如何使屏幕内容与报表内容一致?
ID=727554, 发贴富翁: Kingron, 发贴时间:2001-11-13 2:29:00不知道你是怎么解决的,刚好找到到了一些资料,就是我以前所的那个函数:
如何在不同的打印分辨率下面打印?
下面给出一个函数,在调用这个函数之后,你就可以使用Font.Size来设置字体的大小而与打印机分辨率无关了。
注意必须在Printer.begin
Doc之后调用这个函数!
{-------------------------------------------------------------
Sets the logicaldo
ts per inch for the printer and sets the printer axes to point RIGHT anddo
WN. Thus (0,0) is at the top left corner of the page. Returns the page size in logical coordinates.
Note: Must be called AFTER Printer.begin
Doc.
--------------------------------------------------------------}
function SetPrinterScale(dpi : integer) : TPoint;
var
DeviceDpiX, DeviceDpiY : integer;
begin
with Printerdo
begin
SetMapMode(Handle, MM_ISOTROPIC);
SetWindowExt(Handle, dpi, dpi);
DeviceDpiX := GetDeviceCaps(Handle, LOGPIXELSX);
DeviceDpiY := GetDeviceCaps(Handle, LOGPIXELSY);
SetViewPortExt(Handle, DeviceDpiX, DeviceDpiY);
Result := Point(PageWidth, PageHeight);
with Canvasdo
begin
DPtoLP(Handle, Result, 1);
{ This API call is required... }
Font.PixelsPerInch := DPI;
{ ...to make this work. (Who knows why?) }
end;

end;
end;
 
用SetWindowExtEx()这个如何?
 
hongxing_dl:
试了一下,还是不行,但好像程序能认了,能否详细一些:)
——————————————————————————————
[Error] print_file.pas(52): E2035 Not enough actual parameters
 
BOOL SetWindowExtEx(
HDC hdc, // handle of device context
int nXExtent, // new horizontal window extent
int nYExtent, // new vertical window extent
LPSIZE lpSize // original window extent
);
多了一个参数阿
 
没有定义setwindowext函数,你看看这个函数在哪个单元,然后引用进来就可以了
 
谢谢各位:)
我使用 setwindowextex(handle,2,2,0) 能通过编译。
lipise的值好像只能设为0,不知是什么含义,能否详示?
————————————————————————————————
没有定义setwindowext函数,你看看这个函数在哪个单元,然后引用进来就可以了
setwindowext应该已升级成了 setwindowextex
 
答案还不完美,只有先顶了!!!
 
在delphi的画布上应该怎样用setwindowextex函数,
想要详细的答案哦:).
 
setwindowextex( )函数没人用了吗?
不知哪位大虾有它的使用说明。。。。。。
 
都不太完整,只好如此了。。。
 
后退
顶部