发表于:2005-12-02 10:24:00
楼主
如何在 InTouch 中实现超过显示器屏幕尺寸的大窗口的自由滚动显示
概要介绍
目前在 InTouch的画面制作中,有很多用户会制作出超过显示器尺寸的大窗口。例如:目前大多数的显示器分辨率为1024X768,但有时用户会提出一些超过该尺寸的画面要求,比如1400X900等。这通常会因为以下几种原因:用户需要一幅大尺寸整体工厂流程总览;比较复杂的传输或流程系统;用户的特殊要求等。InTouch的WindowMaker是支持这样的画面的,但问题在于如何在WindowViewer中实现该类窗口的自由滚动显示。大家知道,Wonderware公司除了在InTouch的CD中提供的标准函数之外,还在多年的实践中增加了不少功能的函数,这些函数在Wonderware公司提供的KBCD中可以找到。本文正是利用KBCD提供的函数来实现InTouch的超大窗口的自由滚动显示功能。
函数介绍 :为了满足用户自由移动窗口的需要,在 Wonderware 公司的 KBCD 中提供 MoveWindow 函数。
调用方法: MoveWindow( WindowName , Left , Top , Width , Height );
MoveWindow 函数将窗口名为 WindowName 的窗口的作上角移动到 ( Left, Top ) 坐标,并将窗口大小改变为宽度为 Width ,高度为 Height 。
具体实现方法
1)制作好你所需要的大窗口 WindowName ,并假定窗口大小为( Width, Height )。
2)设计你所需要的窗口滚动方式,比如水平滚动条和垂直滚动条控制。
3)实现 :仅举例说明水平移动的实现方式,其它可类推。
自己制作一滚动条,或者使用 Microsoft Visual Basic 的滚动条控件,其滚动条的宽度大小制作为 (1024/Width)*1024 。该滚动条设计为单个窗口并位于屏幕最下端。
定义整数型标记 Horiz 和 Vert ,来表示水平位置和垂直位置。定义水平滚动条滚动位置对应 Horiz ,滚动的范围(以左端为参考位置)为 0- ( 1024- 滚动条宽度),对应标记值范围 0 – (1024 - Width) 。
数据改变脚本加入 Horiz: MoveWindow(WindowName, Horiz, Vert, Width, Height) 。
当水平滚动条滚动时,该窗口将实现水平移动。
这只是实现窗口滚动的一种方式。你可以利用这些函数以及其他一些函数,根据具体的用户要求来按照用户所需要的方式进行具体的实现。