控制工程师论坛

人机界面

如何在 InTouch 中实现操作提示框 (Tip) 功能

yuhoucaihong
yuhoucaihong

2007-07-18

 转贴

如何在 InTouch 中实现操作提示框 (Tip) 功能 
 
     此篇技术信息主要介绍了如何使用 Wonderware InTouch 的函数在 InTouch 中实现操作提示框的功能,即操作者将鼠标移至操作范围内时,可以自动出现提示框提示有关该操作的文字信息,如大家在目前 Windows 操作系统下见到的大多数应用那样。 

  
概要介绍 
    目前在 InTouch的画面制作中,有很多用户提出实现操作提示框的功能,而此功能在InTouch的标准版本中很难实现。Wonderware公司除了在InTouch的CD中提供的标准函数之外,还在多年的实践中增加了不少功能的函数,这些函数在Wonderware公司提供的KBCD中可以找到。本文正是利用KBCD提供的一些函数来实现InTouch的操作提示框功能。 

函数介绍 
首先将实现操作提示框功能需要的有关函数介绍如下:

1 WWContext 函数或 WWCntx32 函数 

调用方法: 

result = WWContext( Window, Left, Top, Width, Height, NameOfTag, Message ); 

result = WWCntx32(Window,Left,Top,Width,Height,NameOfTag,Message); 

      这两个函数的功能和调用方法基本一样,它们均定义了 InTouch 窗口中以 (Left,Top) 坐标点为左上角,宽度为 Width , 高度为 Height 的矩形区域。当鼠标移动至该区域内, InTouch 将会自动识别,并将 Message 的值赋给名为 NameOfTag 的消息型标记。 

2 GetCursorPosition 函数 

调用方法 

GetCursorPosition("Xtag", "Ytag", UseDesktop); 

该函数获取鼠标的位置,并将鼠标位置返回给 ( Xtag, Ytag ) 。 

因为我们已经有了 WWContext 函数, InTouch 能够自动地捕捉鼠标位置,开发者已不需要用脚本来捕捉鼠标位置。这里我们使用 GetCursorPosition 函数是为了控制提示框的显示位置。 

3 MoveWindow 函数 

调用方法 

     MoveWindow( WindowName , Left , Top , Width , Height ); 

     MoveWindow 函数将窗口名为 WindowName 的窗口的作上角移动到 ( Left, Top ) 坐标,并将窗口大小改变为宽度为 Width ,高度为 Height 。 

    使用 MoveWindow 函数与 GetCursorPosition 函数结合可以控制提示框的显示位置以及窗口大小。因为提示框的宽度是根据文字的宽度来决定的,所以需要用 MoveWindow 函数来同时改变提示框窗口的大小以及显示位置。   

具体实现方法 
    规划好需要显示提示框的操作区域,用 WWContext 或 WWCntx32 定义每一个这样的区域。注意,对每一个区域都要定义一次,该定义可以在应用脚本或是主窗口脚本中执行。例如,窗口 Main 有 Button1 和 Button2 两个按钮,它们所在的矩形区域用 ( Left,Top,Width,Height) 坐标来表示分别为 ( Left_Butn1, Top_Butn1, Width_Butn1, Height_Butn1) 和 ( Left_Butn2,Top_Butn2,Width_Butn2,Height_Butn2) 。在应用程序脚本,条件类型“运行时”,执行以下脚本: 

     WWContext(“Main”,Left_Butn1,Top_Butn1,Width_Butn1,Height_Butn1,TipString,”Button1”);
     WWContext(“Main”,Left_Butn2,Top_Butn2,Width_Butn2,Height_Butn2,TipString,”Button2”); 


    创建提示框窗口 TipWindow ,该窗口仅显示字符串 TipString 。该窗口风格可按照通用的提示框窗口,以黄色为背景色,框式样选择‘单一'。窗口宽度取你需要显示的最长一条提示字符串的宽度或更宽一点,高度取单个字符的高度,依你设计的字体而定。 


为了在合适的位置来显示提示框窗口,创建标记 TipString 的数据改变脚本如下: 

     GetCursorPosition(“X_Tag”,”Y_Tag”,1); 

     MoveWindow(“TipWindow”,X_Tag,Y_Tag,x*StringLen(TipString),HeightOfTipWindow); 

其中 x 之值为你所选定字体的单个字符宽度所占像素的个数。 
  

    这只是实现操作提示框的一种方式。你可以利用这些函数以及其他一些函数,根据具体的用户要求来按照用户所需要的方式进行具体的实现。 
回帖

评论0

首页 | 登录 | 注册 | 返回顶部↑
手机版 | 电脑版
版权所有 Copyright(C) 2016 CE China