Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)aaa
published in(发表于) 2014/7/19 0:13:32
delphi设置窗口范围

delphi设置窗口范围

设置窗口范围

SetWindowExtEx()和SetViewPortExtEx()函数可以定义Win32 将逻辑单位转换为设备单位的方式。这些函数只在窗口映射模式设为MM_ANISOTROPIC 或MM_ISOTROPIC 时才能使用,否则无效。因此,下面的代码的一个逻辑单位对应两个设备单位(像素):

SetWindowExtEx(Canvas.Handle,1,1,nil) ;

SetViewportExtEx(Caanvas.Handle,2,2,nil);

同样,下面的代码的5 个逻辑单位需要10 个设备单位:

SetWindowExtEx(Canvas.Handle,5,5,nil);

SetViewportExtEx(Canvas.Handle,10,10,nil);

注意,这与前面的例子完全一样。两者的逻辑与设备单位比都为1:2。

下面的例子可以用来改变窗体的单位:

SetWindowExtEx (Canvas.Handle, 500, 500, nil);

SetWindowExtEx (Canvas.Handle, ClientWidth, ClientHeight, nil);

注意,使用VCL 画布改变设备范围的映射模式是不稳定的,它可能恢复到原始状态。通常,映射模式必须由实际绘图句柄来设置。

这样,不管窗体的尺寸多大,上面的代码都让用户工作在客户区的宽度和高度为500×500 单位(不是像素)的窗体上。

SetWindowOrgEx()和SetViewportOrgEx()函数可重定位默认的原点(0,0)。此位置在MM_TEXT映射模式下位于窗体客户区左上角。通常情况下,只需要修改视区的原点。

例如执行下面的代码:

SetViewportOrgEx(Canvas.Handle,ClientWidthdiv2,ClientHeightdiv2,nil);

注意:传递给SetWindowOrgEx()、SetWindowExtEx()、SetViewportOrgEx 和SetViewportExtEx()的最后一个参数是nil。SetWindowOrgEx()和SetViewportOrgEx()函数需要传递一个TPoint 结构,用来保存上次设置的原点,以便必要时恢复设备环境的原点。另外,SetWindowExtEx()和SetViewportExtEx()函数需要传递一个TSize 结构,用于保存设备环境的原先范围。




If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759