如何在 InTouch 中实现操作提示框 (Tip) 功能
作者:激情如火,2005-12-2 10:17:00 发表于:《Wonderware论坛》共有22人回复,3196次点击加为好友   发送留言

  转贴

如何在 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 之值为你所选定字体的单个字符宽度所占像素的个数。 
  

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

以下是对《如何在 InTouch 中实现操作提示框 (Tip) 功能 》的回复:
饮欣
加为好友 发送留言   2005-12-2 11:02:00
  "这些函数在Wonderware公司提供的KBCD中可以找到",请问一下,这些函数是不是要单独安装KBCD的内容才有阿,在哪能找到这种安装盘,因为我在intouch的标准函数中没有找到。谢谢
激情如火
加为好友 发送留言   2005-12-2 11:10:00
  intouch的标准函数中是有的,KBCD只是函数说明帮助。
兜兜22
加为好友 发送留言   2005-12-8 10:15:00
  没有找到
在哪里有这几个函数
饮欣
加为好友 发送留言   2005-12-9 13:44:00
  我也没找到阿,还以为没认真看,后来又找了一边还是没有
赖赖
加为好友 发送留言   2005-12-10 12:30:00
  要另外再加数据文件才能支持以上的函数
LeeC
加为好友 发送留言   2005-12-11 14:43:00
  Intouch9.5已经增加了此项功能
婉儿
加为好友 发送留言   2005-12-19 16:32:00
  intouch7.11中没有呀,能不能加上?
吴耀鑫
加为好友 发送留言   2006-4-1 23:58:00
  我是刚刚接触INTOUCH的``谢谢
if{[(..else..)]}endif
加为好友 发送留言   2006-4-6 20:57:00
  Intouch9.5也没找不到
if{[(..else..)]}endif
加为好友 发送留言   2006-4-7 18:04:00
  LZ的帖子是转自Wonderware技术支持的吧。
原文里有KBCD相关的链接
http://www.wonderware.com.cn/support/technote/technote001.asp
丁荣星
加为好友 发送留言   2006-4-21 15:57:00
  hao
xuerbing
加为好友 发送留言   2006-6-15 16:07:00
  我装的就是intouch 9.5,我也没有找到这些函数。请问,到底在哪里啊?
生活
加为好友 发送留言   2006-6-25 19:30:00
  9.5版本里直接填写就行了,不需要调用函数的
海港湾
加为好友 发送留言   2006-9-12 19:06:00
  haohao
三宝树
加为好友 发送留言   2006-10-26 11:20:00
  如果在TRACE MODE 6 软件中来实现这个功能,简直是小CASE.我用过TRACE MODE 6 基础版的,挺不错的。
便于大家学习和使用,我把TRACE MODE 6的网站连接粘贴如下:
[url=www.tracemode.cn]www.tracemode.cn[/url]
三宝树
加为好友 发送留言   2006-10-26 11:21:00
  [url=http://www.tracemode.cn]http://www.tracemode.cn[/url]
三宝树
加为好友 发送留言   2006-10-26 11:23:00
  该网站上的内容比较翔实,我们工控行业的兄弟们又多了一个选择了。
好的东东,我们共同分享!
愿学者
加为好友 发送留言   2006-11-9 13:43:00
  我喜欢该网站,有很多可学习的内容.
原意学习的人
加为好友 发送留言   2006-11-9 13:45:00
  请多支持啊!
club
加为好友 发送留言   2006-11-9 14:16:00
  顶
club
加为好友 发送留言   2007-1-11 13:23:00
  9.5的也不行呢,直接写的时候还要定义
club
加为好友 发送留言   2007-1-16 14:32:00
  请多支持啊!