如何在 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 之值為你所選定字體的單個字符寬度所占像素的個數。
這只是實現操作提示框的一種方式。你可以利用這些函數以及其他一些函數,根據具體的用戶要求來按照用戶所需要的方式進行具體的實現。