当使用Multi VGA卡时需要注意什么?


描述
使用多屏功能时会产生一个问题,就是函数(比如SetBackColor)中只会定义画面名(lpszPictureName)和对象名(lpszObjectName)。因此,如果使用了多屏功能,函数中没有明确定义,也就无法定义是哪个屏上的画面。 n

#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
SetBackColor("system.pdl","storage_tank",CO_RED); // background color
}n

如果用户希望在所有屏上执行某个动作,需要输入以下C脚本动作:n

#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
SetBackColor("@SCREEN.@WIN12:@1001.@DESK:system.pdl","storage_tank",CO_RED); // background color
SetBackColor("@SCREEN.@WIN22:@1001.@DESK: system.pdl","storage_tank",CO_RED); // background color
}
通过输入这两行命令(针对2个屏幕的),能够使得SetBackColor在两个显示屏上都执行。@WIN12指的是Monitor1,@WIN22指的是Monitor2。通过这种方式,画面"system.pdl"的函数就可以指定在某个显示屏上执行了。n

如果希望在WinCC运行画面中使用多于两个显示屏,并且希望同一张画面在两个屏上打开,这会出现触发的一个C脚本,例如通过在一个屏幕上点击鼠标,脚本却在另外一个屏幕上执行。n

比如,执行C函数SetVisible,并指到某画面名(比如 "Picture1.PDL",...),那么实际是指到多屏中最先打开的那张画面。如果想特定指到当前画面,那么就必须用指针指过去:n

SetVisible(IpszPictureName,...);n

如果希望在画面中通过点击一个退出按钮来关闭画面窗口,需要采用以下C脚本:n

SetVisible(GetParentPicture(IpszPictureName), "picture_window_xyz", 0);n

可以在全局脚本的STANDARD functionsGRAPHICSGetParentPicture中找到GetParentPicture。n

背景

这种情况下,IpszPictureName指向了打开的画面窗口,但是此画面窗口是集成在其母窗口中的。

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc332064.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论